litesoft
@ 939
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
// This Source Code is in the Public Domain per: http://litesoft.org/License.txt package org.litesoft.bo.views; import org.litesoft.commonfoundation.typeutils.*; import java.util.*; import org.litesoft.uispecification.*; public class UriFragmentTwoLinesPlusObjectURLs extends UriFragmentIdParams { public static final Factory FACTORY = new Factory( "2Lines+ObjURLs" ) { @Override protected UriFragmentIdParams create( String pLLtoParamsString ) { return new UriFragmentTwoLinesPlusObjectURLs( pLLtoParamsString ); } }; private String mLine1, mLine2; private ObjectURL[] mObjectURLs = ObjectURL.EMPTY_ARRAY; private void setObjectURLs( List<ObjectURL> pObjectURLs ) { if ( pObjectURLs != null ) { mObjectURLs = pObjectURLs.toArray( new ObjectURL[pObjectURLs.size()] ); } } public UriFragmentTwoLinesPlusObjectURLs( String pLine1, String pLine2, List<ObjectURL> pObjectURLs ) { mLine1 = checkLine( pLine1 ); mLine2 = checkLine( pLine2 ); setObjectURLs( pObjectURLs ); } private String checkLine( String pLine ) { if ( pLine == null ) { pLine = ""; } if ( Strings.isNoCtrlAscii( pLine ) ) { return pLine; } throw new IllegalArgumentException( "Can not accept control characters" ); } public String getLine1() { return mLine1; } public String getLine2() { return mLine2; } public ObjectURL[] getObjectURLs() { return mObjectURLs; } protected String getRegistrationID() { return FACTORY.getRegistrationID(); } protected String LLtoParamsString() { StringBuilder sb = new StringBuilder(); sb.append( mLine1 ).append( '\n' ).append( mLine2 ).append( '\n' ); if ( mObjectURLs.length > 0 ) { boolean anyAdded = false; for ( ObjectURL zObjectURL : mObjectURLs ) { if ( zObjectURL != null ) { if ( anyAdded ) { sb.append( ObjectURL.URL_SEPARATOR ); } anyAdded = true; sb.append( zObjectURL ); } } } return sb.toString(); } private UriFragmentTwoLinesPlusObjectURLs( String pLLtoParamsString ) { if ( pLLtoParamsString != null ) { int zAt = pLLtoParamsString.indexOf( '\n' ); if ( zAt != -1 ) { mLine1 = pLLtoParamsString.substring( 0, zAt ); int zFrom = zAt + 1; if ( -1 != (zAt = pLLtoParamsString.indexOf( '\n', zFrom )) ) { mLine2 = pLLtoParamsString.substring( zFrom, zAt ); zFrom = zAt + 1; if ( pLLtoParamsString.length() > zFrom ) { List<ObjectURL> zObjectURLs = new ArrayList<ObjectURL>(); for (; -1 != (zAt = pLLtoParamsString.indexOf( ObjectURL.URL_SEPARATOR, zFrom )); zFrom = zAt + 1 ) { zObjectURLs.add( ObjectURL.fromString( pLLtoParamsString.substring( zFrom, zAt ) ) ); } zObjectURLs.add( ObjectURL.fromString( pLLtoParamsString.substring( zFrom ) ) ); setObjectURLs( zObjectURLs ); } } } } } } |