package com.enonic.cms.api.plugin.ext.userstore; import java.util.Properties; import com.enonic.cms.api.plugin.ext.ExtensionBase; public abstract class RemoteUserStoreFactory extends ExtensionBase implements Comparable<RemoteUserStoreFactory> { private final String type; private final String[] aliases; public RemoteUserStoreFactory( final String type, final String... aliases ) { this.type = type; this.aliases = aliases; } public final String getType() { return this.type; } public final String[] getAliases() { return this.aliases; } public final boolean isOfType( final String type ) { if ( this.type.equalsIgnoreCase( type ) ) { return true; } for ( final String alias : this.aliases ) { if ( alias.equalsIgnoreCase( type ) ) { return true; } } return false; } public abstract RemoteUserStore create( Properties props ); @Override public final int compareTo( final RemoteUserStoreFactory o ) { return this.type.compareTo( o.type ); } }