/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved. * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.gss.xml; import javax.xml.namespace.QName; import net.opengis.wfs.TransactionType; import org.geoserver.gss.GetDiffResponseType; import org.geotools.xml.ElementInstance; import org.geotools.xml.Node; public class GetDiffResponseTypeBinding extends GSSRequestBinding { public QName getTarget() { return GSS.GetDiffResponse; } public Class getType() { return GetDiffResponseType.class; } @Override public Object parse(ElementInstance instance, Node node, Object value) throws Exception { GetDiffResponseType gdr = new GetDiffResponseType(); if (node.hasAttribute("fromVersion")) { gdr.setFromVersion(((Number) node.getAttributeValue("fromVersion")).longValue()); } if (node.hasAttribute("toVersion")) { gdr.setToVersion(((Number) node.getAttributeValue("toVersion")).longValue()); } if (node.hasAttribute("typeName")) { gdr.setTypeName((QName) node.getAttributeValue("typeName")); } if (node.hasChild("Changes")) { gdr.setTransaction((TransactionType) node.getChildValue("Changes")); } return gdr; } @Override public Object getProperty(Object object, QName name) throws Exception { GetDiffResponseType gdr = (GetDiffResponseType) object; if (name.getLocalPart().equals("typeName")) { return gdr.getTypeName(); } else if (name.getLocalPart().equals("fromVersion")) { return gdr.getFromVersion(); } else if (name.getLocalPart().equals("toVersion")) { return gdr.getToVersion(); } else if (name.getLocalPart().equals("Changes")) { return gdr.getTransaction(); } return super.getProperty(object, name); } }