/*
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you 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 org.wso2.carbon.identity.application.common.model;
import org.apache.axiom.om.OMElement;
import java.io.Serializable;
import java.util.Iterator;
public class Property implements Serializable {
private static final long serialVersionUID = 2423059969331364604L;
private String name;
private String value;
private boolean isConfidential;
private String defaultValue;
private String displayName;
private boolean required;
private String description;
private String type;
private int displayOrder;
public Property() {
}
/*
* <Property> <Name></Name> <Value></Value> <IsConfidential></IsConfidential>
* <DefaultValue></DefaultValue> <DisplayName></DisplayName> <Required></Required>
* <Description></Description> </Property>
*/
public static Property build(OMElement propertyOM) {
if (propertyOM == null) {
return null;
}
Property property = new Property();
Iterator<?> iter = propertyOM.getChildElements();
while (iter.hasNext()) {
OMElement element = (OMElement) (iter.next());
String elementName = element.getLocalName();
if ("Name".equals(elementName)) {
property.setName(element.getText());
} else if ("Value".equals(elementName)) {
property.setValue(element.getText());
} else if ("IsConfidential".equals(elementName)) {
if (element.getText() != null && element.getText().trim().length() > 0) {
property.setConfidential(Boolean.parseBoolean(element.getText()));
}
} else if ("defaultValue".equals(elementName)) {
property.setDefaultValue(element.getText());
} else if ("DisplayName".equals(elementName)) {
property.setDisplayName(element.getText());
} else if ("Required".equals(elementName)) {
if (element.getText() != null && element.getText().trim().length() > 0) {
property.setRequired(Boolean.parseBoolean(element.getText()));
}
} else if ("Description".equals(elementName)) {
property.setDescription(element.getText());
} else if ("DisplayOrder".equals(elementName)) {
property.setDisplayOrder(Integer.parseInt(element.getText()));
} else if ("Type".equals(elementName)) {
property.setType(element.getText());
}
}
return property;
}
/**
* @return
*/
public String getValue() {
return value;
}
/**
* @param value
*/
public void setValue(String value) {
this.value = value;
}
/**
* @return
*/
public String getName() {
return name;
}
/**
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* @return
*/
public boolean isConfidential() {
return isConfidential;
}
/**
* @param isConfidential
*/
public void setConfidential(boolean isConfidential) {
this.isConfidential = isConfidential;
}
/**
* @return
*/
public String getDefaultValue() {
return defaultValue;
}
/**
* @param defaultValue
*/
public void setDefaultValue(String defaultValue) {
this.defaultValue = defaultValue;
}
/**
* @return
*/
public String getDisplayName() {
return displayName;
}
/**
* @param displayName
*/
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
/**
* @return
*/
public boolean isRequired() {
return required;
}
/**
* @param required
*/
public void setRequired(boolean required) {
this.required = required;
}
/**
* @return
*/
public String getDescription() {
return description;
}
/**
* @param description
*/
public void setDescription(String description) {
this.description = description;
}
/**
* @return
*/
public String getType() {
return type;
}
/**
* @param type
*/
public void setType(String type) {
this.type = type;
}
public int getDisplayOrder() {
return displayOrder;
}
public void setDisplayOrder(int displayOrder) {
this.displayOrder = displayOrder;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Property)) {
return false;
}
Property property = (Property) o;
if (name != null ? !name.equals(property.name) : property.name != null) {
return false;
}
if (value != null ? !value.equals(property.value) : property.value != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + (value != null ? value.hashCode() : 0);
return result;
}
}