Subversion Repository Public Repository

litesoft

Diff Revisions 862 vs 864 for /trunk/Java/core/Anywhere/src/org/litesoft/core/simpletypes/temporal/AbstractCalendarY.java

Diff revisions: vs.
  @@ -4,7 +4,7 @@
4 4
5 5 import org.litesoft.core.typeutils.*;
6 6
7 - public abstract class AbstractCalendarY<T extends AbstractCalendarY> extends AbstractTemporal<T> implements CalendarAccessorY
7 + public abstract class AbstractCalendarY<T extends AbstractCalendarY, M extends AbstractCalendarY.Mutable> extends AbstractTemporal<T> implements CalendarAccessorY
8 8 {
9 9 private static final long serialVersionUID = 1L;
10 10
  @@ -77,11 +77,6 @@
77 77 return (this == them) || (LESSER != LL_compareNonNullLoose( them ).result());
78 78 }
79 79
80 - public String toSQLvalue()
81 - {
82 - return formatYear4();
83 - }
84 -
85 80 public Date toUtilDate()
86 81 {
87 82 return toUtilDateAdaptor().getWallDate();
  @@ -91,9 +86,25 @@
91 86
92 87 // vvvvvvvvvvvvvvvvvv Support methods vvvvvvvvvvvvvvvvv
93 88
94 - protected final String formatYear4()
89 + protected static final int parseYear(String pStringForm, String... pParts)
90 + {
91 + return parseInt( pParts[0], "Year", pStringForm );
92 + }
93 +
94 + protected static final StringBuilder formatSQLvalueY( CalendarAccessorY pAccessor, StringBuilder pSB )
95 + {
96 + return formatYear( pAccessor, pSB );
97 + }
98 +
99 + protected static final StringBuilder formatSortableDisplayFormY( CalendarAccessorY pAccessor, StringBuilder pSB )
95 100 {
96 - return Integers.zeroPadIt( 4, mYear );
101 + return formatYear( pAccessor, pSB );
102 + }
103 +
104 + protected static final StringBuilder formatYear( CalendarAccessorY pAccessor, StringBuilder pSB )
105 + {
106 + yyyy_Chunk.appendYearTo( pAccessor, pSB );
107 + return pSB;
97 108 }
98 109
99 110 @Override
  @@ -124,5 +135,43 @@
124 135 /**
125 136 * @param pNewYear != current
126 137 */
127 - abstract protected T LLsetYear( int pNewYear );
138 + protected final T LLsetYear( int pNewYear )
139 + {
140 + M zMutable = createMutable( pNewYear );
141 + zMutable.normalize();
142 + return createTypeFrom( zMutable );
143 + }
144 +
145 + protected abstract M createMutable( int pNewYear );
146 +
147 + protected abstract T createTypeFrom( M pMutable );
148 +
149 + protected static class Mutable implements CalendarAccessorY
150 + {
151 + private int mYear;
152 +
153 + public Mutable( int pYear )
154 + {
155 + mYear = pYear;
156 + }
157 +
158 + public final int getYear()
159 + {
160 + return mYear;
161 + }
162 +
163 + public void normalize()
164 + {
165 + }
166 +
167 + protected final void decrementYear()
168 + {
169 + mYear--;
170 + }
171 +
172 + protected final void incrementYear()
173 + {
174 + mYear++;
175 + }
176 + }
128 177 }