question: @ Override public void writeExpression ( Expression oldExp ) { if ( null == oldExp ) { throw new NullPointerException ( ) ; } boolean oldWritingObject = writingObject ; writingObject = true ; Object oldValue = expressionValue ( oldExp ) ; if ( oldValue == null || get ( oldValue ) != null && ( oldWritingObject || oldValue . getClass ( ) != String . class ) ) { return ; } if ( ! isBasicType ( oldValue ) || ( ! oldWritingObject && oldValue . getClass ( ) == String . class ) ) { recordExpression ( oldValue , oldExp ) ; } if ( checkDeadLoop ( oldValue ) ) { return ; } super . writeExpression ( oldExp ) ; writingObject = oldWritingObject ; }
target:  Records the expression so that it can be written out later, then calls super implementation.