ml.shifu.shifu.container.meta.MetaItem.java Source code

Java tutorial

Introduction

Here is the source code for ml.shifu.shifu.container.meta.MetaItem.java

Source

/*
 * Copyright [2012-2014] PayPal Software Foundation
 *
 * 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 ml.shifu.shifu.container.meta;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;

import org.apache.commons.collections.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * ConfigMeta class
 */
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(Include.NON_NULL)
public class MetaItem implements Cloneable {

    private String name;

    private String type;

    private Object defval;

    private String directive;

    private String description;

    private Integer maxLength;

    private Integer minLength;

    private List<ValueOption> options;

    private String elementType;

    private List<MetaItem> element;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Object getDefval() {
        return defval;
    }

    public void setDefval(Object defval) {
        this.defval = defval;
    }

    public String getDirective() {
        return directive;
    }

    public void setDirective(String directive) {
        this.directive = directive;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Integer getMaxLength() {
        return maxLength;
    }

    public void setMaxLength(Integer maxLength) {
        this.maxLength = maxLength;
    }

    public Integer getMinLength() {
        return minLength;
    }

    public void setMinLength(Integer minLength) {
        this.minLength = minLength;
    }

    public List<ValueOption> getOptions() {
        return options;
    }

    public void setOptions(List<ValueOption> options) {
        this.options = options;
    }

    public String getElementType() {
        return elementType;
    }

    public void setElementType(String elementType) {
        this.elementType = elementType;
    }

    public List<MetaItem> getElement() {
        return element;
    }

    public void setElement(List<MetaItem> element) {
        this.element = element;
    }

    @Override
    public MetaItem clone() {
        MetaItem copy = null;
        try {
            copy = (MetaItem) super.clone();
        } catch (CloneNotSupportedException e) {
            // This should never happen
            throw new InternalError(e.toString());
        }

        copy.setName(name);
        copy.setType(type);
        copy.setDefval(defval);
        copy.setMaxLength(maxLength);
        copy.setMinLength(minLength);
        copy.setOptions(options);
        copy.setElementType(elementType);

        if (CollectionUtils.isNotEmpty(element)) {
            List<MetaItem> elementList = new ArrayList<MetaItem>();
            for (MetaItem meta : element) {
                elementList.add(meta.clone());
            }

            copy.setElement(elementList);
        }

        return copy;
    }
}