/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.image.filter.parser; public final class FilterExpr { private final String name; private final Object[] args; public FilterExpr( String name, Object[] args ) { this.name = name; this.args = args != null ? args : new Object[0]; } public String getName() { return this.name; } public Object[] getArguments() { return this.args; } public String toString() { StringBuffer str = new StringBuffer(); str.append( this.name ).append( "(" ); for ( int i = 0; i < this.args.length; i++ ) { if ( i > 0 ) { str.append( "," ); } str.append( encode( this.args[i] ) ); } str.append( ")" ); return str.toString(); } private String encode( Object arg ) { if ( arg == null ) { return ""; } if ( arg instanceof String ) { return quote( (String) arg ); } else { return arg.toString(); } } private String quote( String arg ) { if ( arg.contains( "'" ) ) { return "\"" + arg + "\""; } else { return "'" + arg + "'"; } } }