/** * Constructor. * @param context * @param instruction * @param line */ ChangeStateCommandInstruction( Context context, String instruction, int line ) { super( context, instruction, line ); Pattern p = Pattern.compile( PREFIX + "\\s+status\\s+of\\s+(/.*)\\s+to\\b(.*)", Pattern.CASE_INSENSITIVE ); Matcher m = p.matcher( instruction ); if( m.matches()) { this.syntaxicallyCorrect = true; this.targetStatusAsString = m.group( 2 ).trim().toUpperCase().replace( ' ', '_' ).replace( "_AND_", "_" ); this.targetStatus = InstanceStatus.exactStatus( this.targetStatusAsString ); this.instancePath = m.group( 1 ).trim(); } }
/** * A secured alternative to {@link InstanceStatus#valueOf(String)}. * @param s a string (can be null) * @return the associated runtime status, or {@link InstanceStatus#NOT_DEPLOYED} otherwise */ public static InstanceStatus whichStatus( String s ) { InstanceStatus result = exactStatus( s ); return result == null ? NOT_DEPLOYED : result; }