Creo Elements/Direct Model Manager Customization Guide > code_examples > taskagent > SimpleModelGeometryCheckPermissionCheck2.txt
SimpleModelGeometryCheckPermissionCheck2.txt
package com.acme;

import java.util.logging.Level;
import java.util.logging.Logger;
import org.w3c.dom.Element;
import com.osm.automation.IJobPermissionCheck;
import com.osm.automation.IXmlConfigurable;
import com.osm.automation.XmlConfigurationSupport;
import com.osm.biz.WMElement;
import com.osm.datamgmt.biz.Library;
import com.osm.datamgmt.biz.Model;
import com.osm.exception.WMException;

public class SimpleModelGeometryCheckJobPermissionCheck implements IJobPermissionCheck, IXmlConfigurable {
private static final Logger log = Logger.getLogger(SimpleModelGeometryCheckJobPermissionCheck.class.getName());
private static final String XML_TAG_ALLOW_FOR_LIBRARY_PARTS = "AllowForLibraryParts";
private boolean allowForLibraryParts = false;

// Interface IXmlConfigurable
public String getRootTagName() {
return XML_TAG_ALLOW_FOR_LIBRARY_PARTS;
}
public void configure(Element xmlConfigElement) {
try {
final Element element = XmlConfigurationSupport.getFirstChild(xmlConfigElement,
XML_TAG_ALLOW_FOR_LIBRARY_PARTS);

final String booleanString = XmlConfigurationSupport.getText(element);

if (!XmlConfigurationSupport.isEmptyString(booleanString)) {
allowForLibraryParts = Boolean.parseBoolean(booleanString);
}
} catch (Exception e) {
log.log(Level.WARNING, "Reading configuration for '" + XML_TAG_ALLOW_FOR_LIBRARY_PARTS + "' failed", e);
}
}

// Interface IJobPermissionCheck
public void checkJobExecutionAllowed(WMElement wmElement) throws WMException {
boolean ok = wmElement instanceof Model;
ok &= ((Model) wmElement).isModelPart();
ok &= allowForLibraryParts || !isLibraryPart(wmElement);
if (!ok) {
throw new WMException("Job execution not allowed for this model part.");
}
}

// helper methods
private boolean isLibraryPart(WMElement wmElement) {
return wmElement instanceof Library;
}
}
Was this helpful?