Hello @d_graham @BjoernRueegg ,
Thank you for posting your comments,
Meanwhile I created two method to implement the requirement :
@SuppressWarnings("null")
public static ArrayList<String> getAllRequiredIBA(WTObject obj) throws Exception {
System.out.println("getRequuiredContraints STARTED ---> ");
ArrayList<String> listOfRequiredAttributes = new ArrayList<>();
TypeIdentifier tiObj = ClientTypedUtility.getTypeIdentifier(obj);
TypeDefinitionReadView typeDefinitionReadView = TypeDefinitionServiceHelper.service.getTypeDefView(tiObj);
Collection<AttributeDefinitionReadView> allAttributes = typeDefinitionReadView.getAllAttributes();
for (AttributeDefinitionReadView attribute : allAttributes) {
AttributeTypeIdentifier ati = attribute.getAttributeTypeIdentifier();
if (ati instanceof InstanceBasedAttributeTypeIdentifier) {
String attributenName = attribute.getName();
// System.out.println(attributenName + " is instanceof
// InstanceBasedAttributeTypeIdentifier ");
Collection<ConstraintDefinitionReadView> AllConstraints = attribute.getAllConstraints();
for (ConstraintDefinitionReadView constraintType : AllConstraints) {
if (constraintType.getRule().getRuleClassname()
.equals("com.ptc.core.meta.container.common.impl.ValueRequiredConstraint")) {
listOfRequiredAttributes.add(attributenName);
}
}
}
}
return listOfRequiredAttributes;
}
@SuppressWarnings("null")
public static ArrayList<String> getEmptyRequiredIBA(WTObject obj, ArrayList<String> listOfRequiredAttributes)
throws WTException {
ArrayList<String> emptyRequiredAttributes = new ArrayList<>();
System.out.println("allEmptyRequiredAttributes Started ");
for (String reqAttribute : listOfRequiredAttributes) {
PersistableAdapter paObj = new PersistableAdapter(obj, null, null, new DisplayOperationIdentifier());
paObj.persist();
paObj.load(reqAttribute);
Object ibaValue = paObj.get(reqAttribute);
if (ibaValue == null) {
System.out.println("Attributen Name : " + reqAttribute + " " + " Attribute Value :" + ibaValue);
emptyRequiredAttributes.add(reqAttribute);
}
}
return emptyRequiredAttributes;
}
This works fine for me.