/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.catalog.impl; import java.io.IOException; import java.io.Serializable; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.geoserver.catalog.Catalog; import org.geoserver.catalog.MetadataMap; import org.geoserver.catalog.StoreInfo; import org.geoserver.catalog.WorkspaceInfo; import org.opengis.util.ProgressListener; /** * Default implementation of {@link StoreInfo}. * */ @SuppressWarnings("serial") public abstract class StoreInfoImpl implements StoreInfo { protected String id; protected String name; protected String description; protected String type; protected boolean enabled; protected WorkspaceInfo workspace; protected transient Catalog catalog; protected Map<String, Serializable> connectionParameters = new HashMap<String, Serializable>(); protected MetadataMap metadata = new MetadataMap(); protected Throwable error; protected boolean _default; protected StoreInfoImpl() { } protected StoreInfoImpl(Catalog catalog) { this.catalog = catalog; } protected StoreInfoImpl(Catalog catalog, String id) { this(catalog); setId(id); } public String getId() { return id; } public void setId(String id) { this.id = id; } public Catalog getCatalog() { return catalog; } public void setCatalog( Catalog catalog ) { this.catalog = catalog; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getType() { return type; } public void setType(String type) { this.type = type; } public boolean isEnabled() { return enabled; } public void setEnabled(boolean enabled) { this.enabled = enabled; } public WorkspaceInfo getWorkspace() { return workspace; } public void setWorkspace(WorkspaceInfo workspace) { this.workspace = workspace; } public Map<String, Serializable> getConnectionParameters() { return connectionParameters; } public void setConnectionParameters(Map<String, Serializable> connectionParameters) { this.connectionParameters = connectionParameters; } public synchronized MetadataMap getMetadata() { if (metadata == null) { metadata = new MetadataMap(); } return metadata; } public void setMetadata(MetadataMap metadata) { this.metadata = metadata; } public <T extends Object> T getAdapter(Class<T> adapterClass, Map<?, ?> hints) { // subclasses should override return null; } public Iterator<?> getResources(ProgressListener monitor) throws IOException { // subclasses should override return null; } @Override public String toString() { return new StringBuilder(getClass().getSimpleName()).append('[').append(name).append(']') .toString(); } public Throwable getError() { return error; } public void setError(Throwable error) { this.error = error; } public boolean isDefault() { return _default; } public void setDefault(boolean _default) { this._default = _default; } public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((connectionParameters == null) ? 0 : connectionParameters .hashCode()); result = prime * result + ((description == null) ? 0 : description.hashCode()); result = prime * result + (enabled ? 1231 : 1237); result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((workspace == null) ? 0 : workspace.hashCode()); return result; } public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (!( obj instanceof StoreInfo ) ) { return false; } final StoreInfo other = (StoreInfo) obj; if (connectionParameters == null) { if (other.getConnectionParameters() != null) return false; } else if (!connectionParameters.equals(other.getConnectionParameters())) return false; if (description == null) { if (other.getDescription() != null) return false; } else if (!description.equals(other.getDescription())) return false; if (enabled != other.isEnabled()) return false; if (id == null) { if (other.getId() != null) return false; } else if (!id.equals(other.getId())) return false; if (name == null) { if (other.getName() != null) return false; } else if (!name.equals(other.getName())) return false; if (workspace == null) { if (other.getWorkspace() != null) return false; } else if (!workspace.equals(other.getWorkspace())) return false; return true; } }