com.evolveum.midpoint.prism.Item.getDefinition()方法的使用及代码示例

x33g5p2x  于2022-01-21 转载在 其他  
字(11.2k)|赞(0)|评价(0)|浏览(78)

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

Item.getDefinition介绍

[英]Returns applicable definition.

May return null if no definition is applicable or the definition is not known.
[中]返回适用的定义。
如果没有适用的定义或该定义未知,则可能返回null。

代码示例

代码示例来源:origin: Evolveum/midpoint

public ItemDefinition<?> getSourceDefinition() {
  return sourceItem != null ? sourceItem.getDefinition() : null;
}

代码示例来源:origin: Evolveum/midpoint

private Comparator<Item<?, ?>> getItemDisplayOrderComparator() {
  return (o1, o2) -> compareDefinitions(o1.getDefinition(), o2.getDefinition());
}

代码示例来源:origin: Evolveum/midpoint

private <C extends Containerable> ItemDefinition getItemDefinition(PrismContainerValue<C> cval, Item<?, ?> item) {
  if (item.getDefinition() != null) {
    return item.getDefinition();
  }
  ComplexTypeDefinition ctd = cval.getComplexTypeDefinition();
  if (ctd == null) {
    return null;
  }
  return ctd.findLocalItemDefinition(item.getElementName());
}

代码示例来源:origin: Evolveum/midpoint

@NotNull
protected StringBuilder debugDumpCommon(int indent) {
  StringBuilder sb = new StringBuilder();
  DebugUtil.indentDebugDump(sb, indent);
  sb.append("Item: ").append(name).append(" [rel-path: ").append(sourceRelPath).append("]");
  if (sourceItem != null) {
    sb.append(" ITEM");
    final ItemDefinition def = sourceItem.getDefinition();
    if (def != null) {
      sb.append(" DEF(").append(def.getName().getLocalPart()).append("/").append(def.getDisplayName()).append(":").append(def.getDisplayOrder()).append(")");
    }
  }
  if (operational) {
    sb.append(" OPER");
  }
  return sb;
}

代码示例来源:origin: Evolveum/midpoint

@NotNull
MatchingRule getMatchingRuleFromRegistry(MatchingRuleRegistry matchingRuleRegistry, Item filterItem) {
  try {
    return matchingRuleRegistry.getMatchingRule(matchingRule, filterItem.getDefinition().getTypeName());
  } catch (SchemaException ex){
    throw new IllegalArgumentException(ex.getMessage(), ex);
  }
}

代码示例来源:origin: Evolveum/midpoint

public static void assertDefinition(Item item, QName type, int minOccurs, int maxOccurs) {
  ItemDefinition definition = item.getDefinition();
  assertDefinition(definition, item.getElementName(), type, minOccurs, maxOccurs);
}

代码示例来源:origin: Evolveum/midpoint

public ItemDefinition getDefinition() {
  Item<V,D> anyItem = getAnyItem();
  if (anyItem != null) {
    return anyItem.getDefinition();
  }
  if (delta != null) {
    return delta.getDefinition();
  }
  return null;
}

代码示例来源:origin: Evolveum/midpoint

public void removeOperationalItems() {
    accept(visitable -> {
      if (visitable instanceof Item) {
        Item item = ((Item) visitable);
        if (item.getDefinition() != null && item.getDefinition().isOperational()) {
          PrismValue parent = item.getParent();
          if (parent instanceof PrismContainerValue) {    // should be the case
            ((PrismContainerValue) parent).remove(item);
          }
        }
      }
    });
  }
}

代码示例来源:origin: Evolveum/midpoint

private String getItemLabel(Item item) {
  return item.getDefinition().getDisplayName() != null ?
      resolve(item.getDefinition().getDisplayName()) : item.getElementName().getLocalPart();
}

代码示例来源:origin: Evolveum/midpoint

/**
 * Marshals a given prism item (object, container, reference, property).
 *
 * @param item Item to be marshaled.
 * @param itemName Name to give to the item in the marshaled form. Usually null (i.e. taken from the item itself).
 * @param itemDefinition Definition to be used when parsing. Usually null (i.e. taken from the item itself).
 * @param context Serialization context.
 * @return Marshaled item.
 */
@NotNull
RootXNodeImpl marshalItemAsRoot(@NotNull Item<?, ?> item, QName itemName,
    ItemDefinition itemDefinition, SerializationContext context) throws SchemaException {
  @NotNull QName realItemName = itemName != null ? itemName : item.getElementName();
  ItemDefinition realItemDefinition = itemDefinition != null ? itemDefinition : item.getDefinition();
  XNodeImpl content = marshalItemContent(item, realItemDefinition, context);
  if (realItemDefinition != null) {
    addTypeDefinitionIfNeeded(realItemName, realItemDefinition.getTypeName(), content);
  }
  return new RootXNodeImpl(realItemName, content);
}

代码示例来源:origin: Evolveum/midpoint

@Override
public boolean canBeDefinitionOf(I item) {
  if (item == null) {
    return false;
  }
  ItemDefinition<?> itemDefinition = item.getDefinition();
  if (itemDefinition != null) {
    if (!QNameUtil.match(getTypeName(), itemDefinition.getTypeName())) {
      return false;
    }
    // TODO: compare entire definition? Probably not.
    return true;
  }
  return true;
}

代码示例来源:origin: Evolveum/midpoint

public Set<RAnyValue<?>> convertToRValue(Item item, boolean assignment,
    RObjectExtensionType ownerType) throws SchemaException, DtoTranslationException {
  Validate.notNull(item, "Object for converting must not be null.");
  Validate.notNull(item.getDefinition(), "Item '" + item.getElementName() + "' without definition can't be saved.");
  ItemDefinition definition = item.getDefinition();
  Set<RAnyValue<?>> rValues = new HashSet<>();
  if (!isIndexed(definition, item.getElementName(), areDynamicsOfThisKindIndexed(ownerType), prismContext)) {
    return rValues;
  }
  if (LOGGER.isTraceEnabled()) {
    LOGGER.trace("Converting any values of item {}; definition: {}", item, definition);
  }
  try {
    RAnyValue rValue;
    List<PrismValue> values = item.getValues();
    for (PrismValue value : values) {
      rValue = convertToRValue(value, assignment, ownerType);
      rValues.add(rValue);
    }
  } catch (Exception ex) {
    throw new DtoTranslationException("Exception when translating " + item + ": " + ex.getMessage(), ex);
  }
  return rValues;
}

代码示例来源:origin: Evolveum/midpoint

public <IV extends PrismValue,ID extends ItemDefinition, I extends Item<IV,ID>,DD extends ItemDelta<IV,ID>>
    DD findItemDelta(ItemPath propertyPath, Class<DD> deltaType, Class<I> itemType, boolean strict) {
  if (changeType == ChangeType.ADD) {
    I item = objectToAdd.findItem(propertyPath, itemType);
    if (item == null) {
      return null;
    }
    DD itemDelta = createEmptyDelta(propertyPath, item.getDefinition(), deltaType, item.getClass());
    itemDelta.addValuesToAdd(item.getClonedValues());
    return itemDelta;
  } else if (changeType == ChangeType.MODIFY) {
    return findModification(propertyPath, deltaType, strict);
  } else {
    return null;
  }
}

代码示例来源:origin: Evolveum/midpoint

private <V extends PrismValue, D extends ItemDefinition> void visitItem(Item<V,D> item, ValidationResult result) {
  if (item.isRaw()) {
    return;
  }
  D definition = item.getDefinition();
  if (definition == null) {
    return;
  }
  if (warnDeprecated && definition.isDeprecated()) {
    warn(result, item, "deprecated");
  }
  if (warnPlannedRemoval) {
    String plannedRemoval = definition.getPlannedRemoval();
    if (plannedRemoval != null) {
      if (warnPlannedRemovalVersion == null || plannedRemoval.equals(warnPlannedRemovalVersion)) {
        warn(result, item, "planned for removal in version " + plannedRemoval);
      }
    }
  }
}

代码示例来源:origin: Evolveum/midpoint

private SceneItemImpl createSceneItemCommon(Item<?,?> item) {
  SceneItemImpl si = new SceneItemImpl(createSceneItemName(item));
  ItemDefinition<?> def = item.getDefinition();
  if (def != null) {
    si.setOperational(def.isOperational());
  }
  si.setSourceItem(item);
  si.setSourceRelPath(item.getElementName());
  return si;
}

代码示例来源:origin: Evolveum/midpoint

private <IV extends PrismValue,ID extends ItemDefinition, I extends Item<IV,ID>> void deepCloneDefinitionItem(I item, boolean ultraDeep, PrismContainerDefinition<C> clonedContainerDef, Consumer<ItemDefinition> postCloneAction) {
  PrismContainerDefinition<C> oldContainerDef = getDefinition();
  ItemName itemName = item.getElementName();
  ID oldItemDefFromContainer = oldContainerDef.findItemDefinition(itemName);
  ID oldItemDef = item.getDefinition();
  ID clonedItemDef;
  if (oldItemDefFromContainer == oldItemDef) {
    clonedItemDef = clonedContainerDef.findItemDefinition(itemName);
  } else {
    clonedItemDef = (ID) oldItemDef.deepClone(ultraDeep, postCloneAction);
  }
  ((ItemImpl) item).propagateDeepCloneDefinition(ultraDeep, clonedItemDef, postCloneAction);        // propagate to items in values
  item.setDefinition(clonedItemDef);                                    // sets CTD in values only if null!
}

代码示例来源:origin: Evolveum/midpoint

private NameImpl createSceneItemName(Item<?,?> item) {
  NameImpl name = new NameImpl(item.getElementName().getLocalPart());
  ItemDefinition<?> def = item.getDefinition();
  if (def != null) {
    name.setDisplayName(def.getDisplayName());
    name.setDescription(def.getDocumentation());
  }
  name.setId(name.getSimpleName());        // todo reconsider
  name.setNamesAreResourceKeys(true);
  return name;
}

代码示例来源:origin: Evolveum/midpoint

protected void assertDefinitions(Visitable value) {
  value.accept(v -> {
    if (v instanceof Item) {
      Item item = (Item) v;
      String label = item.getPath() + ": " + v;
      //System.out.println("Checking " + label);
      if (item.getDefinition() == null) {
        assertTrue("No definition in " + label, isDynamic(item.getPath()));
      } else {
        assertNotNull("No prism context in definition of " + label, item.getDefinition().getPrismContext());
      }
    } else if (v instanceof PrismContainerValue) {
      PrismContainerValue pcv = (PrismContainerValue) v;
      String label = pcv.getPath() + ": " + v;
      //System.out.println("Checking " + label);
      if (pcv.getComplexTypeDefinition() == null) {
        fail("No complex type definition in " + label);
      } else {
        assertNotNull("No prism context in definition of " + label, pcv.getComplexTypeDefinition().getPrismContext());
      }
    }
  });
}

代码示例来源:origin: Evolveum/midpoint

@Test
  public void testComplexMatch() throws Exception {
    PrismObject<UserType> user = PrismTestUtil.parseObject(PrismInternalTestUtil.USER_JACK_FILE_XML);
//        System.out.println("user given name" + user.asObjectable().getGivenName());
    System.out.println("definition: " +user.findItem(UserType.F_FAMILY_NAME).getDefinition().debugDump());
    ObjectFilter filter =
        getPrismContext().queryFor(UserType.class)
            .item(UserType.F_FAMILY_NAME).eq("Sparrow")
            .and().item(UserType.F_FULL_NAME).contains("arr")
            .and()
              .block()
                .item(UserType.F_GIVEN_NAME).eq("Jack")
                .or().item(UserType.F_GIVEN_NAME).eq("Jackie")
              .endBlock()
        .buildFilter();
    boolean match = ObjectQuery.match(user, filter, matchingRuleRegistry);
    AssertJUnit.assertTrue("filter does not match object", match);
  }

代码示例来源:origin: Evolveum/midpoint

@Test
public void testInboundMapping() throws Exception{
  final String TEST_NAME = "testInboundMapping";
  TestUtil.displayTestTitle(TEST_NAME);
  PrismContext prismContext = evaluator.getPrismContext();
  PrismObject<ShadowType> account = PrismTestUtil.parseObject(new File(MappingTestEvaluator.TEST_DIR + "/account-inbound-mapping.xml"));
  Item oldItem = account.findItem(ItemPath.create(ShadowType.F_ATTRIBUTES, SchemaTestConstants.ICFS_NAME));
  ItemDelta delta = prismContext.deltaFactory().property().createModificationAddProperty(SchemaTestConstants.ICFS_NAME_PATH_PARTS, (PrismPropertyDefinition) oldItem.getDefinition(), ((PrismPropertyValue) oldItem.getAnyValue()).getValue());
  PrismObject<UserType> user = evaluator.getUserDefinition().instantiate();
  MappingImpl<PrismPropertyValue<PolyString>,PrismPropertyDefinition<PolyString>> mapping = evaluator.createInboudMapping("mapping-inbound.xml", TEST_NAME, delta, user.asObjectable(), account.asObjectable(), null, null);
  OperationResult opResult = new OperationResult(TEST_NAME);
  mapping.evaluate(null, opResult);
  PrismValueDeltaSetTriple<PrismPropertyValue<PolyString>> outputTriple = mapping.getOutputTriple();
  outputTriple.checkConsistence();
  assertTripleZero(outputTriple, PrismTestUtil.createPolyString("pavolr"));
  PrismAsserts.assertTripleNoPlus(outputTriple);
  assertTripleNoMinus(outputTriple);
}

相关文章