/* (c) 2014 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.wfs.request;
import java.util.List;
import net.opengis.wfs.LockFeatureResponseType;
import net.opengis.wfs.WfsFactory;
import net.opengis.wfs20.Wfs20Factory;
import org.eclipse.emf.ecore.EObject;
import org.opengis.filter.identity.FeatureId;
/**
* WFS LockFeature response.
*
* @author Justin Deoliveira, OpenGeo
*
*/
public abstract class LockFeatureResponse extends RequestObject {
protected LockFeatureResponse(EObject adaptee) {
super(adaptee);
}
public String getLockId() {
return eGet(adaptee, "lockId", String.class);
}
public void setLockId(String lockId) {
eSet(adaptee, "lockId", lockId);
}
public abstract void addLockedFeature(FeatureId fid);
public abstract void addNotLockedFeature(FeatureId fid);
public abstract List<FeatureId> getNotLockedFeatures();
public static class WFS11 extends LockFeatureResponse {
public WFS11(EObject adaptee) {
super(adaptee);
}
@Override
public void addLockedFeature(FeatureId fid) {
LockFeatureResponseType lfr = (LockFeatureResponseType) adaptee;
if (lfr.getFeaturesLocked() == null) {
lfr.setFeaturesLocked(((WfsFactory)getFactory()).createFeaturesLockedType());
}
lfr.getFeaturesLocked().getFeatureId().add(fid);
}
@Override
public void addNotLockedFeature(FeatureId fid) {
LockFeatureResponseType lfr = (LockFeatureResponseType) adaptee;
if (lfr.getFeaturesNotLocked() == null) {
lfr.setFeaturesNotLocked(((WfsFactory)getFactory()).createFeaturesNotLockedType());
}
lfr.getFeaturesNotLocked().getFeatureId().add(fid);
}
@Override
public List<FeatureId> getNotLockedFeatures() {
return eGet(adaptee, "featuresNotLocked.featureId", List.class);
}
}
public static class WFS20 extends LockFeatureResponse {
public WFS20(EObject adaptee) {
super(adaptee);
}
@Override
public void addLockedFeature(FeatureId fid) {
net.opengis.wfs20.LockFeatureResponseType lfr =
(net.opengis.wfs20.LockFeatureResponseType) adaptee;
if (lfr.getFeaturesLocked() == null) {
lfr.setFeaturesLocked(((Wfs20Factory)getFactory()).createFeaturesLockedType());
}
lfr.getFeaturesLocked().getResourceId().add(fid);
}
@Override
public void addNotLockedFeature(FeatureId fid) {
net.opengis.wfs20.LockFeatureResponseType lfr =
(net.opengis.wfs20.LockFeatureResponseType) adaptee;
if (lfr.getFeaturesNotLocked() == null) {
lfr.setFeaturesNotLocked(((Wfs20Factory)getFactory()).createFeaturesNotLockedType());
}
lfr.getFeaturesNotLocked().getResourceId().add(fid);
}
@Override
public List<FeatureId> getNotLockedFeatures() {
return eGet(adaptee, "featuresNotLocked.resourceId", List.class);
}
}
}