package org.easysoa.registry.types.ids;
import java.io.Serializable;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlTransient;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
import org.easysoa.registry.types.Endpoint;
@XmlTransient
@XmlAccessorType(XmlAccessType.NONE)
@JsonAutoDetect(fieldVisibility=Visibility.ANY, getterVisibility=Visibility.NONE, setterVisibility=Visibility.NONE)
public class EndpointId extends SoaNodeId {
@JsonIgnore
@XmlTransient
private final String environment;
@JsonIgnore
@XmlTransient
private final String url;
/**
* With default subproject. Convenience for testing.
* @param environment
* @param url
*/
public EndpointId(String environment, String url) {
super(Endpoint.DOCTYPE, buildName(environment, url));
this.environment = environment;
this.url = url;
}
public EndpointId(String subprojectId, String environment, String url) {
super(subprojectId, Endpoint.DOCTYPE, buildName(environment, url));
this.environment = environment;
this.url = url;
}
private static String buildName(String environment, String url) {
return environment + ":" + url;
}
@Override
public Map<String, Serializable> getDefaultPropertyValues() {
Map<String, Serializable> properties = super.getDefaultPropertyValues();
properties.put(Endpoint.XPATH_ENDP_ENVIRONMENT, environment);
properties.put(Endpoint.XPATH_URL, url);
properties.put(Endpoint.XPATH_TITLE, environment + " - " + url); // TODO more generic
return properties;
}
public String getEnvironment() {
return environment;
}
public String getUrl() {
return url;
}
}