Subversion Repository Public Repository

litesoft

Diff Revisions 947 vs 948 for /trunk/GWT_Sandbox/FormEngine/src/com/temp/client/foundation/pavment/PlaceRegistry.java

Diff revisions: vs.
  @@ -12,49 +12,39 @@
12 12 * Supporting class that implements PlaceHistoryMapper which expects PlaceTokenizer(s) and Place(s) that implement HasPlaceId,
13 13 * otherwise Class Name magic is used (See PlaceIdExtractor).
14 14 */
15 - public class PlaceRegistry implements PlaceHistoryMapper
16 - {
15 + public class PlaceRegistry implements PlaceHistoryMapper {
17 16 private static final Logger LOGGER = LoggerFactory.getLogger( PlaceRegistry.class );
18 17
19 18 private static final PlaceTokenizerMap PLACE_TOKENIZER_MAP = new PlaceTokenizerMap();
20 19 private static IdTokenizer<Place> sDefaultTokenizer;
21 20 private static Place sDefaultPlace;
22 21
23 - public static void add( PlaceTokenizer<? extends Place>... pTokenizers )
24 - {
25 - if ( pTokenizers != null )
26 - {
27 - for ( PlaceTokenizer<? extends Place> zTokenizer : pTokenizers )
28 - {
29 - if ( zTokenizer != null )
30 - {
22 + public static void add( PlaceTokenizer<? extends Place>... pTokenizers ) {
23 + if ( pTokenizers != null ) {
24 + for ( PlaceTokenizer<? extends Place> zTokenizer : pTokenizers ) {
25 + if ( zTokenizer != null ) {
31 26 PLACE_TOKENIZER_MAP.addTokenizer( zTokenizer );
32 27 }
33 28 }
34 29 }
35 30 }
36 31
37 - public static void setDefaultTokenizer( PlaceTokenizer<? extends Place> pDefaultTokenizer )
38 - {
39 - if ( pDefaultTokenizer != null )
40 - {
32 + public static void setDefaultTokenizer( PlaceTokenizer<? extends Place> pDefaultTokenizer ) {
33 + if ( pDefaultTokenizer != null ) {
41 34 PlaceTokenizer<Place> zTokenizer = cast( pDefaultTokenizer );
42 - if ( null != (sDefaultTokenizer = ProxyIdTokenizer.forceToIdTokenizer( PLACE_TOKENIZER_MAP.addTokenizer( zTokenizer ), zTokenizer )) )
43 - {
35 + if ( null != (sDefaultTokenizer = ProxyIdTokenizer.forceToIdTokenizer( PLACE_TOKENIZER_MAP.addTokenizer( zTokenizer ), zTokenizer )) ) {
44 36 sDefaultPlace = sDefaultTokenizer.getPlace( null );
45 37 }
46 38 }
47 39 }
48 40
49 - public static Place getDefaultPlace()
50 - {
41 + public static Place getDefaultPlace() {
51 42 return sDefaultPlace;
52 43 }
53 44
54 45 private MessageUserSinkAccessor mMessageUserSinkAccessor;
55 46
56 - public PlaceRegistry( MessageUserSinkAccessor pMessageUserSinkAccessor )
57 - {
47 + public PlaceRegistry( MessageUserSinkAccessor pMessageUserSinkAccessor ) {
58 48 mMessageUserSinkAccessor = (pMessageUserSinkAccessor != null) ? pMessageUserSinkAccessor : DefaultMessageUserSink.FACTORY;
59 49 }
60 50
  @@ -66,37 +56,28 @@
66 56 * @return a Place, generated by one of the Registered Tokenizers, or the Default if not found, or NULL if no Default!
67 57 */
68 58 @Override
69 - public Place getPlace( String pToken )
70 - {
59 + public Place getPlace( String pToken ) {
71 60 PlaceIdAndData zIdAndData = PlaceIdAndData.fromString( pToken );
72 - if ( zIdAndData != null )
73 - {
61 + if ( zIdAndData != null ) {
74 62 String zPlaceId = zIdAndData.getPlaceId();
75 63 PlaceTokenizer<? extends Place> zTokenizer = PLACE_TOKENIZER_MAP.getTokenizer( zPlaceId );
76 - if ( zTokenizer == null )
77 - {
64 + if ( zTokenizer == null ) {
78 65 mMessageUserSinkAccessor.getMessageUserSink().setErrorMessage( "Unable to determine 'view' from: " + zPlaceId );
79 - }
80 - else
81 - {
66 + } else {
82 67 Place zPlace;
83 68
84 - try
85 - {
86 - if ( null != (zPlace = zTokenizer.getPlace( zIdAndData.getData() )) )
87 - {
69 + try {
70 + if ( null != (zPlace = zTokenizer.getPlace( zIdAndData.getData() )) ) {
88 71 return zPlace;
89 72 }
90 73 }
91 - catch ( RuntimeException e )
92 - {
74 + catch ( RuntimeException e ) {
93 75 String zMessage = "Unable to create 'view' from: ";
94 76 LOGGER.warn.log( e, zMessage, pToken );
95 77 mMessageUserSinkAccessor.getMessageUserSink().setErrorMessage( zMessage + zPlaceId );
96 78 return sDefaultPlace;
97 79 }
98 - if ( zPlace == null )
99 - {
80 + if ( zPlace == null ) {
100 81 String zMessage = "No 'view' from: ";
101 82 LOGGER.warn.log( zMessage, pToken );
102 83 mMessageUserSinkAccessor.getMessageUserSink().setErrorMessage( zMessage + zPlaceId );
  @@ -114,26 +95,21 @@
114 95 * @return the full URL Fragment (null if Place was null & there was NO Default Tokenizer)
115 96 */
116 97 @Override
117 - public String getToken( Place pPlace )
118 - {
119 - if ( pPlace == null )
120 - {
98 + public String getToken( Place pPlace ) {
99 + if ( pPlace == null ) {
121 100 return null;
122 101 }
123 102 String zPlaceId = PlaceIdExtractor.getPlaceId( pPlace );
124 - if ( zPlaceId == null )
125 - {
103 + if ( zPlaceId == null ) {
126 104 mMessageUserSinkAccessor.getMessageUserSink().setErrorMessage( "Unable to determine 'view' from class: " + pPlace.getClass().getName() );
127 105 return null;
128 106 }
129 107 PlaceTokenizer<Place> zTokenizer = PLACE_TOKENIZER_MAP.getTokenizer( zPlaceId );
130 - if ( zTokenizer == null )
131 - {
108 + if ( zTokenizer == null ) {
132 109 String zMessage = "No 'view' for '" + zPlaceId + "'";
133 110 LOGGER.error.log( zMessage, ": ", pPlace.getClass().getName() );
134 111 mMessageUserSinkAccessor.getMessageUserSink().setErrorMessage( zMessage );
135 - if ( null == sDefaultTokenizer )
136 - {
112 + if ( null == sDefaultTokenizer ) {
137 113 return null;
138 114 }
139 115 zTokenizer = sDefaultTokenizer;
  @@ -141,53 +117,44 @@
141 117 zPlaceId = sDefaultTokenizer.getPlaceId();
142 118 }
143 119 String zToken = null;
144 - try
145 - {
120 + try {
146 121 zToken = zTokenizer.getToken( pPlace );
147 122 }
148 - catch ( RuntimeException e )
149 - {
123 + catch ( RuntimeException e ) {
150 124 LOGGER.error.log( e, "Unable to 'tokenize' Place: ", pPlace.getClass(), " with PlaceId '", zPlaceId, "'" );
151 125 }
152 126 return new PlaceIdAndData( zPlaceId, zToken ).toString();
153 127 }
154 128
155 129 @SuppressWarnings({"unchecked"})
156 - private static <T extends Place> PlaceTokenizer<Place> cast( PlaceTokenizer<T> pTokenizer )
157 - {
130 + private static <T extends Place> PlaceTokenizer<Place> cast( PlaceTokenizer<T> pTokenizer ) {
158 131 return (PlaceTokenizer<Place>) pTokenizer;
159 132 }
160 133
161 - private static class ProxyIdTokenizer<T extends Place> extends IdTokenizer<T>
162 - {
134 + private static class ProxyIdTokenizer<T extends Place> extends IdTokenizer<T> {
163 135 private PlaceTokenizer<T> mTokenizer;
164 136
165 - protected ProxyIdTokenizer( Object pPlaceId, PlaceTokenizer<T> pTokenizer )
166 - {
137 + protected ProxyIdTokenizer( Object pPlaceId, PlaceTokenizer<T> pTokenizer ) {
167 138 super( pPlaceId );
168 139 mTokenizer = pTokenizer;
169 140 }
170 141
171 142 @Override
172 - public T getPlace( String pToken )
173 - {
143 + public T getPlace( String pToken ) {
174 144 return mTokenizer.getPlace( pToken );
175 145 }
176 146
177 147 @Override
178 - public String getToken( T pPlace )
179 - {
148 + public String getToken( T pPlace ) {
180 149 return mTokenizer.getToken( pPlace );
181 150 }
182 151
183 - public static <T extends Place> IdTokenizer<T> forceToIdTokenizer( String pPlaceId, PlaceTokenizer<T> pTokenizer )
184 - {
152 + public static <T extends Place> IdTokenizer<T> forceToIdTokenizer( String pPlaceId, PlaceTokenizer<T> pTokenizer ) {
185 153 return (pTokenizer instanceof IdTokenizer) ? (IdTokenizer<T>) pTokenizer : new ProxyIdTokenizer<T>( pPlaceId, pTokenizer );
186 154 }
187 155 }
188 156
189 - private static class PlaceTokenizerMap
190 - {
157 + private static class PlaceTokenizerMap {
191 158 private final Map<String, PlaceTokenizer<Place>> mPlaceIdToTokenizers = new HashMap<String, PlaceTokenizer<Place>>();
192 159
193 160 /**
  @@ -195,17 +162,14 @@
195 162 *
196 163 * @return PlaceId
197 164 */
198 - public String addTokenizer( PlaceTokenizer<? extends Place> pTokenizer )
199 - {
165 + public String addTokenizer( PlaceTokenizer<? extends Place> pTokenizer ) {
200 166 PlaceTokenizer<Place> zTokenizer = cast( pTokenizer );
201 167 String zPlaceId = PlaceIdExtractor.getPlaceId( zTokenizer );
202 - if ( null == zPlaceId )
203 - {
168 + if ( null == zPlaceId ) {
204 169 throw new IllegalStateException( "Unable to determine PlaceId from Tokenizer: " + pTokenizer.getClass().getName() );
205 170 }
206 171 PlaceTokenizer<Place> zPreviousTokenizer = mPlaceIdToTokenizers.put( zPlaceId, zTokenizer );
207 - if ( (zPreviousTokenizer != null) && (zPreviousTokenizer != zTokenizer) )
208 - {
172 + if ( (zPreviousTokenizer != null) && (zPreviousTokenizer != zTokenizer) ) {
209 173 throw new IllegalStateException( "Duplicate registration for PlaceId '':" + //
210 174 "\n " + zPreviousTokenizer.getClass().getName() + //
211 175 "\n " + pTokenizer.getClass().getName() );
  @@ -213,55 +177,42 @@
213 177 return zPlaceId;
214 178 }
215 179
216 - public PlaceTokenizer<Place> getTokenizer( String pPlaceId )
217 - {
180 + public PlaceTokenizer<Place> getTokenizer( String pPlaceId ) {
218 181 return mPlaceIdToTokenizers.get( pPlaceId );
219 182 }
220 183 }
221 184
222 - private static class PlaceIdAndData
223 - {
185 + private static class PlaceIdAndData {
224 186 private String mPlaceId, mData;
225 187
226 - public PlaceIdAndData( String pPlaceId, String pData )
227 - {
188 + public PlaceIdAndData( String pPlaceId, String pData ) {
228 189 mPlaceId = Assert.noEmpty( "PlaceID", pPlaceId );
229 190 mData = StringUtils.noEmpty( pData );
230 191 }
231 192
232 - public String getPlaceId()
233 - {
193 + public String getPlaceId() {
234 194 return mPlaceId;
235 195 }
236 196
237 - public String getData()
238 - {
197 + public String getData() {
239 198 return mData;
240 199 }
241 200
242 201 @Override
243 - public String toString()
244 - {
202 + public String toString() {
245 203 return (mData == null) ? mPlaceId : mPlaceId + ':' + mData;
246 204 }
247 205
248 - public static PlaceIdAndData fromString( String pURLfragment )
249 - {
250 - if ( pURLfragment != null )
251 - {
252 - if ( (pURLfragment = pURLfragment.trim()).length() != 0 )
253 - {
206 + public static PlaceIdAndData fromString( String pURLfragment ) {
207 + if ( pURLfragment != null ) {
208 + if ( (pURLfragment = pURLfragment.trim()).length() != 0 ) {
254 209 int at = pURLfragment.indexOf( ':' );
255 - if ( at == 0 )
256 - {
210 + if ( at == 0 ) {
257 211 LOGGER.error.log( "Invalid URLfragment: '", pURLfragment, "'" );
258 - }
259 - else
260 - {
212 + } else {
261 213 String zData = null;
262 214 String zPlaceID = pURLfragment;
263 - if ( at != -1 )
264 - {
215 + if ( at != -1 ) {
265 216 zPlaceID = pURLfragment.substring( 0, at ).trim();
266 217 zData = pURLfragment.substring( at + 1 );
267 218 }