All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.draagon.meta.attr.ClassAttribute Maven / Gradle / Ivy

/*
 * Copyright 2002 Draagon Software LLC. All Rights Reserved.
 *
 * This software is the proprietary information of Draagon Software LLC.
 * Use is subject to license terms.
 */
package com.draagon.meta.attr;

/**
 * An attribute of a MetaClass, MetaField, or MetaView
 */
@SuppressWarnings("serial")
public class ClassAttribute extends MetaAttribute {
    //private static Log log = LogFactory.getLog( ClassAttribute.class );

    private Class mClass = null;

    /**
     * Constructs the MetaClass
     */
    public ClassAttribute(String name) {
        super(name);
    }

    /**
     * Sets the value of the MetaAttribute
     */
    @Override
    public void setValue(Class value) {
        mClass = (Class) value;
    }

    /**
     * Returns the value of the MetaAttribute
     */
    @Override
    public Class getValue() {
        return mClass;
    }

    @Override
    public void setValueAsString(String value) {
        try {
            mClass = Class.forName(value);
        } catch (ClassNotFoundException e) {
            throw new InvalidAttributeValueException("Invalid Class Name [" + value + "]");
        }
    }

    @Override
    public String getValueAsString() {
        return mClass.getName();
    }

    @Override
    public Object clone() {
        ClassAttribute ca = (ClassAttribute) super.clone();
        ca.mClass = mClass;
        return ca;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy