the writeobject is a single entry point to the persistence and is used by a encoder in the traditional mode of delegation . although this method is not final , it should not need to be subclassed under normal circumstances . this implementation first checks to see if the stream has already encountered this object . next the mutatesto method is called to see if that candidate returned from the stream can be mutated into an accurate copy of oldinstance . if it can , the initialize method is called to perform the initialization . if not , the candidate is removed from the stream , and the instantiate method is called to create a new candidate for this object . concode_field_sep PlaceHolder placeHolder concode_field_sep void initialize concode_elem_sep Expression instantiate concode_elem_sep boolean mutatesTo
void function ( Object arg0 , Encoder arg1 ) { Object loc0 = arg1 . get ( arg0 ) ; if ( ! mutatesTo ( arg0 , loc0 ) ) { arg1 . remove ( arg0 ) ; arg1 . writeExpression ( instantiate ( arg0 , arg1 ) ) ; } else { initialize ( arg0 . getClass ( ) , arg0 , loc0 , arg1 ) ; } }