// Path: asadmin-java/src/main/java/org/n0pe/asadmin/AbstractAsAdminCmd.java
// public abstract class AbstractAsAdminCmd
//     implements IAsAdminCmd
// {
// 
//     public static final String[] EMPTY_ARRAY = new String[ 0 ];
//     private final StringBuilder stdoutBuilder = new StringBuilder();
//     private final StringBuilder stderrBuilder = new StringBuilder();
//     private Pattern okayErrorPattern = null;
//     private Pattern okayStdOutPattern = null;
// 
//     @Override
//     public final Reader getStandardOutput()
//     {
//         return new CharSequenceReader( stdoutBuilder );
//     }
// 
//     @Override
//     public final Reader getErrorOutput()
//     {
//         return new CharSequenceReader( stderrBuilder );
//     }
// 
//     @Override
//     public boolean failOnNonZeroExit()
//     {
//         if( okayErrorPattern == null )
//         {
//             if( okayStdOutPattern == null )
//             {
//                 return true;
//             }
//             else
//             {
//                 return !okayStdOutPattern.matcher( stdoutBuilder.toString() ).matches();
//             }
//         }
//         else
//         {
//             boolean stderrorNotOK = !okayErrorPattern.matcher( stderrBuilder.toString() ).matches();
//             if( okayStdOutPattern == null )
//             {
//                 return stderrorNotOK;
//             }
//             else
//             {
//                 return !okayStdOutPattern.matcher( stdoutBuilder.toString() ).matches();
//             }
// 
//         }
//     }
// 
//     @Override
//     public void setOkayErrorPattern( Pattern pattern )
//     {
//         this.okayErrorPattern = pattern;
//     }
// 
//     @Override
//     public void setOkayStdOutPattern( Pattern pattern )
//     {
//         this.okayStdOutPattern = pattern;
//     }
// 
//     public String handlePasswordFile( String configuredPasswordFile )
//         throws AsAdminException
//     {
//         return configuredPasswordFile;
//     }
// 
//     final void appendStandardOutputLine( String line )
//     {
//         //System.out.println("Out: " + line);
//         stdoutBuilder.append( line ).append( "\n" );
//     }
// 
//     final void appendErrorOutputLine( String line )
//     {
//         //System.err.println("Err: " + line);
//         stderrBuilder.append( line ).append( "\n" );
//     }
// 
// }
// 
// Path: asadmin-java/src/main/java/org/n0pe/asadmin/Util.java
// public final class Util
// {
// 
//     public static String quoteCommandArgument( String s )
//     {
//         return new StringBuilder( s.length() + 2 ).append( "\"" ).append( s ).append( "\"" ).toString();
//     }
// 
//     private Util()
//     {
//     }
// 
// }


import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.n0pe.asadmin.AbstractAsAdminCmd;
import org.n0pe.asadmin.Util;
    }

    public boolean needCredentials()
    {
        return true;
    }

    public String getActionCommand()
    {
        if( providerName == null )
        {
            throw new IllegalStateException();
        }
        return SECURITY_PROVIDER;
    }

    public String[] getParameters()
    {
        if( ( providerType == null ) || ( layer == null ) || ( classname == null ) )
        {
            throw new IllegalStateException();
        }
        final String[] params;
        if( properties != null && !properties.isEmpty() )
        {
            final StringBuffer sw = new StringBuffer();
            String key;
            for( final Iterator it = properties.keySet().iterator(); it.hasNext(); )
            {
                key = (String) it.next();
// Path: asadmin-java/src/main/java/org/n0pe/asadmin/AbstractAsAdminCmd.java
// public abstract class AbstractAsAdminCmd
//     implements IAsAdminCmd
// {
// 
//     public static final String[] EMPTY_ARRAY = new String[ 0 ];
//     private final StringBuilder stdoutBuilder = new StringBuilder();
//     private final StringBuilder stderrBuilder = new StringBuilder();
//     private Pattern okayErrorPattern = null;
//     private Pattern okayStdOutPattern = null;
// 
//     @Override
//     public final Reader getStandardOutput()
//     {
//         return new CharSequenceReader( stdoutBuilder );
//     }
// 
//     @Override
//     public final Reader getErrorOutput()
//     {
//         return new CharSequenceReader( stderrBuilder );
//     }
// 
//     @Override
//     public boolean failOnNonZeroExit()
//     {
//         if( okayErrorPattern == null )
//         {
//             if( okayStdOutPattern == null )
//             {
//                 return true;
//             }
//             else
//             {
//                 return !okayStdOutPattern.matcher( stdoutBuilder.toString() ).matches();
//             }
//         }
//         else
//         {
//             boolean stderrorNotOK = !okayErrorPattern.matcher( stderrBuilder.toString() ).matches();
//             if( okayStdOutPattern == null )
//             {
//                 return stderrorNotOK;
//             }
//             else
//             {
//                 return !okayStdOutPattern.matcher( stdoutBuilder.toString() ).matches();
//             }
// 
//         }
//     }
// 
//     @Override
//     public void setOkayErrorPattern( Pattern pattern )
//     {
//         this.okayErrorPattern = pattern;
//     }
// 
//     @Override
//     public void setOkayStdOutPattern( Pattern pattern )
//     {
//         this.okayStdOutPattern = pattern;
//     }
// 
//     public String handlePasswordFile( String configuredPasswordFile )
//         throws AsAdminException
//     {
//         return configuredPasswordFile;
//     }
// 
//     final void appendStandardOutputLine( String line )
//     {
//         //System.out.println("Out: " + line);
//         stdoutBuilder.append( line ).append( "\n" );
//     }
// 
//     final void appendErrorOutputLine( String line )
//     {
//         //System.err.println("Err: " + line);
//         stderrBuilder.append( line ).append( "\n" );
//     }
// 
// }
// 
// Path: asadmin-java/src/main/java/org/n0pe/asadmin/Util.java
// public final class Util
// {
// 
//     public static String quoteCommandArgument( String s )
//     {
//         return new StringBuilder( s.length() + 2 ).append( "\"" ).append( s ).append( "\"" ).toString();
//     }
// 
//     private Util()
//     {
//     }
// 
// }


// Path: asadmin-java/src/main/java/org/n0pe/asadmin/commands/CreateMessageSecurityProvider.java
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.n0pe.asadmin.AbstractAsAdminCmd;
import org.n0pe.asadmin.Util;

    }

    public boolean needCredentials()
    {
        return true;
    }

    public String getActionCommand()
    {
        if( providerName == null )
        {
            throw new IllegalStateException();
        }
        return SECURITY_PROVIDER;
    }

    public String[] getParameters()
    {
        if( ( providerType == null ) || ( layer == null ) || ( classname == null ) )
        {
            throw new IllegalStateException();
        }
        final String[] params;
        if( properties != null && !properties.isEmpty() )
        {
            final StringBuffer sw = new StringBuffer();
            String key;
            for( final Iterator it = properties.keySet().iterator(); it.hasNext(); )
            {
                key = (String) it.next();
                sw.append( key ).append( "=" ).append( Util.quoteCommandArgument( (String) properties.get( key ) ) );