Subversion Repository Public Repository

litesoft

Diff Revisions 848 vs 849 for /trunk/Java/core/Anywhere/src/org/litesoft/core/simpletypes/nonpublic/AbstractXY.java

Diff revisions: vs.
  @@ -4,15 +4,13 @@
4 4 import org.litesoft.core.typeutils.*;
5 5
6 6 /**
7 - * @noinspection EqualsAndHashcode
7 + * @noinspection EqualsAndHashcode, deprecation
8 8 */
9 9 public abstract class AbstractXY<T extends AbstractXY> extends CompareSupport<T> implements SimpleType
10 10 {
11 - protected int mX, mY;
11 + private /* final */ int mX, mY;
12 12
13 - /**
14 - * @deprecated - for Serialization
15 - */
13 + @SuppressWarnings({"deprecation", "UnusedDeclaration"}) @Deprecated /** for Serialization */
16 14 protected AbstractXY()
17 15 {
18 16 }
  @@ -23,21 +21,11 @@
23 21 mY = validate( "Y", pY );
24 22 }
25 23
26 - private void setX( int pX )
27 - {
28 - mX = validate( "X", pX );
29 - }
30 -
31 24 public int getX()
32 25 {
33 26 return mX;
34 27 }
35 28
36 - private void setY( int pY )
37 - {
38 - mY = validate( "Y", pY );
39 - }
40 -
41 29 public int getY()
42 30 {
43 31 return mY;
  @@ -90,7 +78,7 @@
90 78 }
91 79 }
92 80
93 - protected static void populate( String pWhat, AbstractXY pXY, String pToString )
81 + protected T copyParse( String pWhat, String pToString )
94 82 {
95 83 if ( pToString == null )
96 84 {
  @@ -110,10 +98,17 @@
110 98 {
111 99 throw populateProblem( pWhat, ": No X-Y sep ','" );
112 100 }
113 - pXY.setX( parseValue( pWhat, "X", pToString.substring( 1, zCommaAt ) ) );
114 - pXY.setY( parseValue( pWhat, "Y", pToString.substring( zCommaAt + 1, pToString.length() - 1 ) ) );
101 + return copy( parseValue( pWhat, "X", pToString.substring( 1, zCommaAt ) ),
102 + parseValue( pWhat, "Y", pToString.substring( zCommaAt + 1, pToString.length() - 1 ) ) );
115 103 }
116 104
105 + private T copy( int pX, int pY )
106 + {
107 + return Cast.it( ((pX == mX) && (pY == mY)) ? this : clone( pX, pY ) );
108 + }
109 +
110 + protected abstract AbstractXY clone( int pX, int pY );
111 +
117 112 public String toString()
118 113 {
119 114 return "(" + mX + "," + mY + ")";