001/*
002 * (C) Copyright 2006-2012 Nuxeo SA (http://nuxeo.com/) and others.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 *
016 * Contributors:
017 *     Nuxeo - initial API and implementation
018 *
019 */
020
021package org.nuxeo.template.api;
022
023import java.util.Date;
024import java.util.EnumSet;
025import java.util.List;
026import java.util.Map;
027
028/**
029 * Enum for types of {@link TemplateInput}
030 *
031 * @author <a href="mailto:td@nuxeo.com">Thierry Delprat</a>
032 */
033public enum InputType {
034
035    StringValue(String.class.getSimpleName()), //
036    BooleanValue(Boolean.class.getSimpleName()), //
037    DateValue(Date.class.getSimpleName()), //
038    MapValue(Map.class.getSimpleName()), //
039    ListValue(List.class.getSimpleName()), //
040    DocumentProperty("source"), //
041    PictureProperty("picture"), //
042    Content("content");
043
044    private final String value;
045
046    InputType(String value) {
047        this.value = value;
048    }
049
050    public String getValue() {
051        return value;
052    }
053
054    @Override
055    public String toString() {
056        return value;
057    }
058
059    public static InputType getByValue(String value) {
060        InputType returnValue = null;
061        for (final InputType element : EnumSet.allOf(InputType.class)) {
062            if (element.toString().equals(value)) {
063                returnValue = element;
064            }
065        }
066        return returnValue;
067    }
068}