RemoteUserImpl.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.ostrichemulators.semtool.user;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author ryan
*/
public final class RemoteUserImpl extends AbstractUser {
private final Map<UserProperty, String> properties = new HashMap<>();
private final Map<String, String> namespaces = new HashMap<>();
public RemoteUserImpl( String name ) {
super( name );
}
public RemoteUserImpl() {
}
public RemoteUserImpl( User user ) {
super( user.getUsername() );
setProperties( user.getProperties() );
setNamespaces( user.getNamespaces() );
}
@Override
public Map<UserProperty, String> getProperties() {
return new EnumMap<>( properties );
}
@Override
public Map<String, String> getNamespaces() {
return new HashMap<>( namespaces );
}
@Override
public void addNamespace( String prefix, String ns ) {
namespaces.put( prefix, ns );
}
@Override
public void setNamespaces( Map<String, String> ns ) {
namespaces.clear();
namespaces.putAll( ns );
}
@Override
public void setProperty( UserProperty prop, String value ) {
if ( null == value ) {
properties.remove( prop );
}
else {
properties.put( prop, value.trim() );
}
}
@Override
public String getProperty( UserProperty prop ) {
return properties.getOrDefault( prop, "" );
}
@Override
public void setProperties( Map<UserProperty, String> props ) {
properties.clear();
properties.putAll( props );
}
@Override
public boolean isLocal() {
return false;
}
}