blob: f6f7cba3c52ffaaeeee8ab19f8a120d8d0c6d43b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF 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.apache.sling.ide.impl.vlt;
import javax.jcr.Value;
import javax.jcr.nodetype.NodeType;
import javax.jcr.nodetype.PropertyDefinition;
public class VltPropertyDefinition implements PropertyDefinition {
private NodeType declaringNodeType = null;
private String name;
private int onParentVersion;
private boolean autoCreated;
private boolean isMandatory;
private boolean isProtected;
private String[] availableQueryOperators;
private Value[] defaultValues;
private int requiredType;
private String[] valueConstraints;
private boolean fullTextSearchable;
private boolean multiple;
private boolean queryOrderable;
//TODO: Current merge mechanism (or propertydefinition-inheritance) is not
// accurate - it should probably do that taking the input directly and
// apply the inheritance rules, rather than taking derived values and overwrite here..
void mergeFrom(VltPropertyDefinition pd) {
if (pd.declaringNodeType!=null) {
declaringNodeType = pd.declaringNodeType;
}
if (pd.onParentVersion!=0) {
onParentVersion = pd.onParentVersion;
}
if (pd.autoCreated) {
autoCreated = pd.autoCreated;
}
if (pd.isMandatory) {
isMandatory = pd.isMandatory;
}
if (pd.isProtected) {
isProtected = pd.isProtected;
}
if (pd.availableQueryOperators!=null) {
availableQueryOperators = pd.availableQueryOperators;
}
if (pd.defaultValues!=null) {
defaultValues = pd.defaultValues;
}
if (pd.requiredType!=0) {
requiredType = pd.requiredType;
}
if (pd.valueConstraints!=null) {
valueConstraints = pd.valueConstraints;
}
if (pd.fullTextSearchable) {
fullTextSearchable = pd.fullTextSearchable;
}
if (pd.multiple) {
multiple = pd.multiple;
}
if (pd.queryOrderable) {
queryOrderable = pd.queryOrderable;
}
}
@Override
public NodeType getDeclaringNodeType() {
return declaringNodeType;
}
void setDeclaringNodeType(NodeType nt) {
this.declaringNodeType = nt;
}
@Override
public String getName() {
return name;
}
void setName(String name) {
this.name = name;
}
@Override
public int getOnParentVersion() {
return onParentVersion;
}
void setOnParentVersion(int onParentVersion) {
this.onParentVersion = onParentVersion;
}
@Override
public boolean isAutoCreated() {
return autoCreated;
}
void setAutoCreated(boolean autoCreated) {
this.autoCreated = autoCreated;
}
@Override
public boolean isMandatory() {
return isMandatory;
}
void setMandatory(boolean mandatory) {
this.isMandatory = mandatory;
}
@Override
public boolean isProtected() {
return isProtected;
}
void setProtected(boolean isProtected) {
this.isProtected = isProtected;
}
@Override
public String[] getAvailableQueryOperators() {
return availableQueryOperators;
}
void setAvailableQueryOperators(String[] availableQueryOperators) {
this.availableQueryOperators = availableQueryOperators;
}
@Override
public Value[] getDefaultValues() {
return defaultValues;
}
void setDefaultValues(Value[] values) {
this.defaultValues = values;
}
@Override
public int getRequiredType() {
return requiredType;
}
void setRequiredType(int requiredType) {
this.requiredType = requiredType;
}
@Override
public String[] getValueConstraints() {
return valueConstraints;
}
void setValueConstraints(String[] valueConstraints) {
this.valueConstraints = valueConstraints;
}
@Override
public boolean isFullTextSearchable() {
return fullTextSearchable;
}
void setFullTextSearchable(boolean fullTextSearchable) {
this.fullTextSearchable = fullTextSearchable;
}
@Override
public boolean isMultiple() {
return multiple;
}
void setMultiple(boolean multiple) {
this.multiple = multiple;
}
@Override
public boolean isQueryOrderable() {
return queryOrderable;
}
void setQueryOrderable(boolean queryOrderable) {
this.queryOrderable = queryOrderable;
}
}