/* Copyright (c) 2008 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.gdata.data.photos.impl; import com.google.gdata.data.ExtensionDescription; import com.google.gdata.data.ValueConstruct; import com.google.gdata.data.photos.Namespaces; /** * An exif tag with a given name and value. All exif tags are represented * as just a name and a string value. This element is marked "repeatable" * because we allow arbitrary exif tags to be passed around. * * */ public class ExifTag extends ValueConstruct { private final String name; /** * Construct an empty exif tag with the given name. Used when parsing * the values from the client. */ public ExifTag(String name) { this(name, null); } /** * Construct an exif tag of <ns:name>value</ns:name>. */ public ExifTag(String name, String value) { super(Namespaces.EXIF_NAMESPACE, name, null, value); this.name = name; setRequired(false); } /** * Get the name of this exif tag. */ public String getName() { return name; } /** * Describe this tag. Does not include the name because that is set * at runtime, rather than at compile time. */ public static ExtensionDescription getDefaultDescription() { ExtensionDescription extDesc = new ExtensionDescription(); extDesc.setRepeatable(true); extDesc.setExtensionClass(ExifTag.class); extDesc.setNamespace(Namespaces.EXIF_NAMESPACE); extDesc.setLocalName("*"); return extDesc; } }