@@ -51,48 +51,40 @@ public abstract class JExpr {
5151 */
5252 private JExpr () { }
5353
54- public static JExpression assign (JAssignmentTarget lhs , JExpression rhs ) {
54+ public static JExpressionStatement assign (JAssignmentTarget lhs , JExpression rhs ) {
5555 return new JAssignment (lhs , rhs );
5656 }
5757
58- public static JExpression assignPlus (JAssignmentTarget lhs , JExpression rhs ) {
58+ public static JExpressionStatement assignPlus (JAssignmentTarget lhs , JExpression rhs ) {
5959 return new JAssignment (lhs , rhs , "+" );
6060 }
6161
62- public static JStatement incr (final JExpression expression ) {
63- return new JStatement () {
64- public void state (JFormatter f ) {
65- JOp .incr (expression ).generate (f );
66- f .p (';' ).nl ();
67- }
68- };
62+ public static JExpressionStatement assignMinus (JAssignmentTarget lhs , JExpression rhs ) {
63+ return new JAssignment (lhs , rhs , "-" );
64+ }
65+
66+ public static JExpressionStatement assignTimes (JAssignmentTarget lhs , JExpression rhs ) {
67+ return new JAssignment (lhs , rhs , "*" );
68+ }
69+
70+ public static JExpressionStatement assignDivide (JAssignmentTarget lhs , JExpression rhs ) {
71+ return new JAssignment (lhs , rhs , "/" );
72+ }
73+
74+ public static JExpressionStatement incr (final JExpression expression ) {
75+ return new JExpressionStatementWrapper (JOp .incr (expression ));
6976 }
7077
7178 public static JStatement preincr (final JExpression expression ) {
72- return new JStatement () {
73- public void state (JFormatter f ) {
74- JOp .preincr (expression ).generate (f );
75- f .p (';' ).nl ();
76- }
77- };
79+ return new JExpressionStatementWrapper (JOp .preincr (expression ));
7880 }
7981
8082 public static JStatement decr (final JExpression expression ) {
81- return new JStatement () {
82- public void state (JFormatter f ) {
83- JOp .decr (expression ).generate (f );
84- f .p (';' ).nl ();
85- }
86- };
83+ return new JExpressionStatementWrapper (JOp .decr (expression ));
8784 }
8885
8986 public static JStatement predecr (final JExpression expression ) {
90- return new JStatement () {
91- public void state (JFormatter f ) {
92- JOp .predecr (expression ).generate (f );
93- f .p (';' ).nl ();
94- }
95- };
87+ return new JExpressionStatementWrapper (JOp .predecr (expression ));
9688 }
9789
9890 public static JInvocation _new (JClass c ) {
@@ -337,5 +329,21 @@ public void generate( JFormatter f ) {
337329 }
338330 };
339331 }
340- }
341332
333+ static class JExpressionStatementWrapper extends JExpressionImpl implements JExpressionStatement {
334+ final JExpression expression ;
335+
336+ JExpressionStatementWrapper (JExpression expression ) {
337+ this .expression = expression ;
338+ }
339+
340+ public void generate (JFormatter f ) {
341+ expression .generate (f );
342+ }
343+
344+ public void state (JFormatter f ) {
345+ expression .generate (f );
346+ f .p (';' ).nl ();
347+ }
348+ }
349+ }
0 commit comments