org.apache.jackrabbit.spi.QNodeDefinition类的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(9.3k)|赞(0)|评价(0)|浏览(76)

本文整理了Java中org.apache.jackrabbit.spi.QNodeDefinition类的一些代码示例,展示了QNodeDefinition类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QNodeDefinition类的具体详情如下:
包路径:org.apache.jackrabbit.spi.QNodeDefinition
类名称:QNodeDefinition

QNodeDefinition介绍

[英]QNodeDefinition is the SPI representation of a NodeDefinition. It refers to Names only and is thus isolated from session-specific namespace mappings.
[中]QNodeDefinition是节点定义的SPI表示。它只引用Names,因此与特定于会话的命名空间映射隔离。

代码示例

代码示例来源:origin: org.apache.jackrabbit/jackrabbit-spi-commons

/**
 * Copy constructor.
 *
 * @param nodeDef some other node definition.
 */
public QNodeDefinitionImpl(QNodeDefinition nodeDef) {
  this(nodeDef.getName(), nodeDef.getDeclaringNodeType(),
      nodeDef.isAutoCreated(), nodeDef.isMandatory(),
      nodeDef.getOnParentVersion(), nodeDef.isProtected(),
      nodeDef.getDefaultPrimaryType(),
      nodeDef.getRequiredPrimaryTypes(),
      nodeDef.allowsSameNameSiblings());
}

代码示例来源:origin: apache/jackrabbit

private QNodeDefinitionId(QNodeDefinition def) {
  declaringNodeType = def.getDeclaringNodeType();
  name = def.getName();
}

代码示例来源:origin: org.apache.jackrabbit/com.springsource.org.apache.jackrabbit.spi.commons

/**
 * Compares two node definitions for equality. Returns <code>true</code>
 * if the given object is a node defintion and has the same attributes
 * as this node definition.
 *
 * @param obj the object to compare this node definition with
 * @return <code>true</code> if the object is equal to this node definition,
 *         <code>false</code> otherwise
 * @see Object#equals(Object)
 */
public boolean equals(Object obj) {
  if (this == obj) {
    return true;
  }
  if (obj instanceof QNodeDefinition) {
    QNodeDefinition other = (QNodeDefinition) obj;
    return super.equals(obj)
        && Arrays.equals(requiredPrimaryTypes, other.getRequiredPrimaryTypes())
        && (defaultPrimaryType == null
            ? other.getDefaultPrimaryType() == null
            : defaultPrimaryType.equals(other.getDefaultPrimaryType()))
        && allowsSameNameSiblings == other.allowsSameNameSiblings();
  }
  return false;
}

代码示例来源:origin: apache/jackrabbit

if (!name.equals(cnd.getDeclaringNodeType())) {
  String msg = "[" + name + "#" + cnd.getName()
      + "] invalid declaring node type specified";
  log.debug(msg);
  throw new InvalidNodeTypeDefinitionException(msg);
checkNamespace(cnd.getName());
if (cnd.definesResidual() && cnd.isAutoCreated()) {
  String msg = "[" + name + "#" + cnd.getName()
      + "] auto-created child-nodes must specify a name";
  log.debug(msg);
if (cnd.getDefaultPrimaryType() == null
    && cnd.isAutoCreated()) {
  String msg = "[" + name + "#" + cnd.getName()
      + "] auto-created child-nodes must specify a default primary type";
  log.debug(msg);
Name dpt = cnd.getDefaultPrimaryType();
checkNamespace(dpt);
boolean referenceToSelf = false;
    String msg = "[" + name + "#" + cnd.getName()
        + "] invalid default primary type '" + dpt + "'";
    log.debug(msg);
    if (cnd.isAutoCreated()) {

代码示例来源:origin: apache/jackrabbit

QNodeDefinition nd = defs[i];
    if (entTarget != null && nd.getRequiredPrimaryTypes() != null) {
      if (entTarget.includesNodeTypes(nd.getRequiredPrimaryTypes())) {
      if (nd.getDefaultPrimaryType() != null) {
for (int i = 0; i < nda.length; i++) {
  QNodeDefinition nd = nda[i];
  if (entTarget != null && nd.getRequiredPrimaryTypes() != null) {
    if (entTarget.includesNodeTypes(nd.getRequiredPrimaryTypes())) {
    if (nd.getDefaultPrimaryType() != null) {

代码示例来源:origin: org.apache.jackrabbit/jackrabbit-core

Name dnt = nodeDef.getDefaultPrimaryType();
Name definingNT = nodeDef.getDeclaringNodeType();
try {
  if (dnt != null) {
      + " defines invalid default node type for child node " + nodeDef.getName();
  log.debug(msg);
  throw new InvalidNodeTypeDefException(msg, nsnte);

代码示例来源:origin: org.apache.jackrabbit/jackrabbit-core

nodeName, existing.getNodeTypeName(), parent);
if (!def.allowsSameNameSiblings()) {
  if (def.isProtected() && entExisting.includesNodeType(ntName)) {
    return;
  if (def.isAutoCreated() && entExisting.includesNodeType(ntName)) {
  if (def.isProtected()) {
    if (def.isProtected()) {

代码示例来源:origin: apache/jackrabbit

if (nd.definesResidual()) {
    msg = ntName + " contains ambiguous residual child node definitions";
  } else {
    msg = ntName + " contains ambiguous definitions for child node named "
        + nd.getName();
  itemDefIds.add(nd);
if (nd.definesResidual()) {
  Name name = nd.getName();
  List<QItemDefinition> defs = namedItemDefs.get(name);
  if (defs == null) {
      if (nd.isAutoCreated() || qDef.isAutoCreated()) {

代码示例来源:origin: apache/jackrabbit

/**
 * {@inheritDoc}
 */
public boolean allowsSameNameSiblings() {
  return ((QNodeDefinition) itemDef).allowsSameNameSiblings();
}

代码示例来源:origin: org.apache.jackrabbit/jackrabbit-spi-commons

boolean b1 = getOldDef().allowsSameNameSiblings();
boolean b2 = getNewDef().allowsSameNameSiblings();
if (b1 != b2 && !b2) {
  Set<Name> s1 = new HashSet<Name>(Arrays.asList(getOldDef().getRequiredPrimaryTypes()));
  Set<Name> s2 = new HashSet<Name>(Arrays.asList(getNewDef().getRequiredPrimaryTypes()));

代码示例来源:origin: apache/jackrabbit

nodeTypeName = definition.getDefaultPrimaryType();
if (nodeTypeName == null) {
  String msg = "No applicable node type could be determined for " + nodeName;
addedStates.addAll(addNodeState(nodeState, nd.getName(), nd.getDefaultPrimaryType(), null, nd, opt));

代码示例来源:origin: apache/jackrabbit

Name[] requiredPrimaryTypes = def.getRequiredPrimaryTypes();
for (int i = 0; i < requiredPrimaryTypes.length; i++) {
  if (!entPrimary.includesNodeType(requiredPrimaryTypes[i])) {
for (int i = 0; i < cnda.length; i++) {
  QNodeDefinition cnd = cnda[i];
  if (!nodeState.getNodeEntry().hasNodeEntry(cnd.getName())) {
    String msg = safeGetJCRPath(nodeState)
        + ": mandatory child node " + cnd.getName()
        + " does not exist";
    log.debug(msg);

代码示例来源:origin: apache/jackrabbit

/** Test for the empty child node definition. */
public void testEmptyNode() {
  QNodeDefinition def = getChildNode("childNodeType", "emptyNode");
  assertEquals("emptyNode allowsSameNameSiblings",
      false, def.allowsSameNameSiblings());
  assertEquals("emptyNode defaultPrimaryType",
      null, def.getDefaultPrimaryType());
}

代码示例来源:origin: org.apache.jackrabbit/jackrabbit-core

private static boolean isAutoCreated(ChildNodeEntry cne, EffectiveNodeType ent) {
  for (QNodeDefinition def : ent.getAutoCreateNodeDefs()) {
    if (def.getName().equals(cne.getName())) {
      return true;
    }
  }
  return false;
}

代码示例来源:origin: org.apache.jackrabbit/jackrabbit-spi-commons

/**
 * @see NodeDefinition#getDefaultPrimaryTypeName()
 * @since JCR 2.0
 */
public String getDefaultPrimaryTypeName() {
  Name ntName = ((QNodeDefinition) itemDef).getDefaultPrimaryType();
  if (ntName == null) {
    return null;
  }
  try {
    return resolver.getJCRName(ntName);
  } catch (NamespaceException e) {
    // should never get here
    log.error("invalid default node type " + ntName, e);
    return null;
  }
}

代码示例来源:origin: org.apache.jackrabbit/jackrabbit-core

if (!def.allowsSameNameSiblings()) {
  throw new ItemExistsException(getNodeId() + "/" + name);
if (!existingChildDef.allowsSameNameSiblings()) {
  throw new ItemExistsException(existingChild.toString());
if (getDefinition().isProtected()) {
  String msg = "not allowed to modify a protected node";
  throw new ConstraintViolationException(msg);

代码示例来源:origin: apache/jackrabbit

if (def.isProtected()) {
  log.debug("Skipping protected nodeState (" + nodeInfo.getName() + ")");
  return null;
  if (ntName == null) {
    ntName = def.getDefaultPrimaryType();

代码示例来源:origin: org.apache.jackrabbit/jackrabbit-spi-commons

/**
   * @see NodeDefinition#getRequiredPrimaryTypeNames()
   * @since JCR 2.0
   */
  public String[] getRequiredPrimaryTypeNames() {
    Name[] ntNames = ((QNodeDefinition) itemDef).getRequiredPrimaryTypes();
    try {
      if (ntNames == null || ntNames.length == 0) {
        // return "nt:base"
        return new String[] { resolver.getJCRName(NameConstants.NT_BASE) };
      } else {
        String[] jcrNames = new String[ntNames.length];
        for (int i = 0; i < ntNames.length; i++) {
          jcrNames[i] = resolver.getJCRName(ntNames[i]);
        }
        return jcrNames;
      }
    } catch (NamespaceException e) {
      // should never get here
      log.error("required node type does not exist", e);
      return new String[0];
    }
  }
}

代码示例来源:origin: apache/jackrabbit

/**
 * @see EffectiveNodeType#checkAddNodeConstraints(org.apache.jackrabbit.spi.Name,QNodeTypeDefinition, ItemDefinitionProvider)
 */
public void checkAddNodeConstraints(Name name, QNodeTypeDefinition nodeTypeDefinition, ItemDefinitionProvider definitionProvider)
    throws ConstraintViolationException, NoSuchNodeTypeException {
  if (nodeTypeDefinition.isAbstract()) {
    throw new ConstraintViolationException("not allowed to add node " + name + ": " + nodeTypeDefinition.getName() + " is abstract and cannot be used as primary node type.");
  }
  if (nodeTypeDefinition.isMixin()) {
    throw new ConstraintViolationException("not allowed to add node " + name + ":" + nodeTypeDefinition.getName() + " is a mixin and cannot be used as primary node type.");
  }
  QNodeDefinition nd = definitionProvider.getQNodeDefinition(this, name, nodeTypeDefinition.getName());
  if (nd.isProtected()) {
    throw new ConstraintViolationException(name + " is protected.");
  }
  if (nd.isAutoCreated()) {
    throw new ConstraintViolationException(name + " is auto-created and can not be manually added");
  }
}

代码示例来源:origin: org.apache.jackrabbit/jackrabbit-core

/**
 * @param name
 * @throws ConstraintViolationException
 */
public void checkRemoveNodeConstraints(Name name) throws ConstraintViolationException {
  /**
   * as there might be multiple definitions with the same name and we
   * don't know which one is applicable, we check all of them
   */
  QNodeDefinition[] defs = getNamedNodeDefs(name);
  if (defs != null) {
    for (QNodeDefinition def : defs) {
      if (def.isMandatory()) {
        throw new ConstraintViolationException("can't remove mandatory node");
      }
      if (def.isProtected()) {
        throw new ConstraintViolationException("can't remove protected node");
      }
    }
  }
}

相关文章