001: /*
002: * GeoTools - OpenSource mapping toolkit
003: * http://geotools.org
004: * (C) 2002-2006, GeoTools Project Managment Committee (PMC)
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation;
009: * version 2.1 of the License.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: */
016: package org.geotools.xs.bindings;
017:
018: import javax.xml.bind.DatatypeConverter;
019: import javax.xml.namespace.QName;
020:
021: import org.geotools.xml.InstanceComponent;
022: import org.geotools.xml.SimpleBinding;
023:
024: import com.sun.xml.bind.DatatypeConverterImpl;
025:
026: /**
027: * Binding object for the type http://www.w3.org/2001/XMLSchema:base64Binary.
028: *
029: * <p>
030: * <pre>
031: * <code>
032: * <xs:simpleType name="base64Binary" id="base64Binary">
033: * <xs:annotation>
034: * <xs:appinfo>
035: * <hfp:hasFacet name="length"/>
036: * <hfp:hasFacet name="minLength"/>
037: * <hfp:hasFacet name="maxLength"/>
038: * <hfp:hasFacet name="pattern"/>
039: * <hfp:hasFacet name="enumeration"/>
040: * <hfp:hasFacet name="whiteSpace"/>
041: * <hfp:hasProperty name="ordered" value="false"/>
042: * <hfp:hasProperty name="bounded" value="false"/>
043: * <hfp:hasProperty name="cardinality" value="countably infinite"/>
044: * <hfp:hasProperty name="numeric" value="false"/>
045: * </xs:appinfo>
046: * <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#base64Binary"/>
047: * </xs:annotation>
048: * <xs:restriction base="xs:anySimpleType">
049: * <xs:whiteSpace value="collapse" fixed="true" id="base64Binary.whiteSpace"/>
050: * </xs:restriction>
051: * </xs:simpleType>
052: *
053: * </code>
054: * </pre>
055: * </p>
056: *
057: * @generated
058: */
059: public class XSBase64BinaryBinding implements SimpleBinding {
060: /**
061: * @generated
062: */
063: public QName getTarget() {
064: return XS.BASE64BINARY;
065: }
066:
067: /**
068: * <!-- begin-user-doc -->
069: * <!-- end-user-doc -->
070: *
071: * @generated modifiable
072: */
073: public int getExecutionMode() {
074: return AFTER;
075: }
076:
077: /**
078: * <!-- begin-user-doc -->
079: * This binding returns arrays of type byte[].
080: * <!-- end-user-doc -->
081: *
082: * @generated modifiable
083: */
084: public Class getType() {
085: return byte[].class;
086: }
087:
088: /**
089: * <!-- begin-user-doc -->
090: * This binding returns arrays of type byte[].
091: * <!-- end-user-doc -->
092: *
093: * @generated modifiable
094: */
095: public Object parse(InstanceComponent instance, Object value)
096: throws Exception {
097: DatatypeConverter
098: .setDatatypeConverter(DatatypeConverterImpl.theInstance);
099:
100: byte[] bin = DatatypeConverter
101: .parseBase64Binary((String) value);
102:
103: return bin;
104: }
105:
106: /**
107: * <!-- begin-user-doc -->
108: * <!-- end-user-doc -->
109: *
110: * @generated modifiable
111: */
112: public String encode(Object object, String value) {
113: byte[] bin = (byte[]) object;
114:
115: return DatatypeConverter.printBase64Binary(bin);
116: }
117: }
|