blob: 594e2158a5109d773d77b890aa659e0e830ec200 [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.fsprovider.internal.mapper.jcr;
import java.util.HashSet;
import java.util.Set;
import javax.jcr.PropertyType;
import javax.jcr.Value;
import javax.jcr.nodetype.NodeType;
import javax.jcr.nodetype.PropertyDefinition;
import javax.jcr.version.OnParentVersionAction;
import org.apache.jackrabbit.JcrConstants;
class FsPropertyDefinition implements PropertyDefinition {
private static final Set<String> PROTECTED_PROPERTY_NAMES = new HashSet<>();
static {
// from nt:base
PROTECTED_PROPERTY_NAMES.add(JcrConstants.JCR_PRIMARYTYPE);
PROTECTED_PROPERTY_NAMES.add(JcrConstants.JCR_MIXINTYPES);
// from mix:created
PROTECTED_PROPERTY_NAMES.add(JcrConstants.JCR_CREATED);
PROTECTED_PROPERTY_NAMES.add("jcr:createdBy");
}
private final String name;
public FsPropertyDefinition(String name) {
this.name = name;
}
@Override
public String getName() {
return name;
}
@Override
public NodeType getDeclaringNodeType() {
return null;
}
@Override
public boolean isAutoCreated() {
return false;
}
@Override
public boolean isMandatory() {
return false;
}
@Override
public int getOnParentVersion() {
return OnParentVersionAction.COPY;
}
@Override
public boolean isProtected() {
return PROTECTED_PROPERTY_NAMES.contains(name);
}
@Override
public int getRequiredType() {
return PropertyType.UNDEFINED;
}
@Override
public String[] getValueConstraints() {
return new String[0];
}
@Override
public Value[] getDefaultValues() {
return new Value[0];
}
@Override
public boolean isMultiple() {
return false;
}
@Override
public String[] getAvailableQueryOperators() {
return new String[0];
}
@Override
public boolean isFullTextSearchable() {
return false;
}
@Override
public boolean isQueryOrderable() {
return false;
}
}