[jboss-svn-commits] JBL Code SVN: r29123 - labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Aug 31 11:37:53 EDT 2009
Author: Rikkola
Date: 2009-08-31 11:37:53 -0400 (Mon, 31 Aug 2009)
New Revision: 29123
Modified:
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java
Log:
Fix for the codes that I broke.
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java 2009-08-31 14:15:35 UTC (rev 29122)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java 2009-08-31 15:37:53 UTC (rev 29123)
@@ -14,560 +14,569 @@
import org.drools.repository.utils.IOUtils;
/**
- * The RuleItem class is used to abstract away the details of the underlying JCR repository.
- * It is used to pass information about rules stored in the repository.
- *
+ * The RuleItem class is used to abstract away the details of the underlying JCR
+ * repository. It is used to pass information about rules stored in the
+ * repository.
+ *
* @author btruitt
*/
public class AssetItem extends CategorisableItem {
- private Logger log = Logger.getLogger( AssetItem.class );
- /**
- * The name of the rule node type
- */
- public static final String RULE_NODE_TYPE_NAME = "drools:assetNodeType";
+ private Logger log = Logger.getLogger(AssetItem.class);
+ /**
+ * The name of the rule node type
+ */
+ public static final String RULE_NODE_TYPE_NAME = "drools:assetNodeType";
- public static final String CONTENT_PROPERTY_NAME = "drools:content";
- public static final String CONTENT_PROPERTY_BINARY_NAME = "drools:binaryContent";
- public static final String CONTENT_PROPERTY_ATTACHMENT_FILENAME = "drools:attachmentFileName";
+ public static final String CONTENT_PROPERTY_NAME = "drools:content";
+ public static final String CONTENT_PROPERTY_BINARY_NAME = "drools:binaryContent";
+ public static final String CONTENT_PROPERTY_ATTACHMENT_FILENAME = "drools:attachmentFileName";
- /**
- * The name of the date effective property on the rule node type
- */
- public static final String DATE_EFFECTIVE_PROPERTY_NAME = "drools:dateEffective";
+ /**
+ * The name of the date effective property on the rule node type
+ */
+ public static final String DATE_EFFECTIVE_PROPERTY_NAME = "drools:dateEffective";
- public static final String DISABLED_PROPERTY_NAME = "drools:disabled";
+ public static final String DISABLED_PROPERTY_NAME = "drools:disabled";
- /**
- * The name of the date expired property on the rule node type
- */
- public static final String DATE_EXPIRED_PROPERTY_NAME = "drools:dateExpired";
+ /**
+ * The name of the date expired property on the rule node type
+ */
+ public static final String DATE_EXPIRED_PROPERTY_NAME = "drools:dateExpired";
- public static final String PACKAGE_NAME_PROPERTY = "drools:packageName";
+ public static final String PACKAGE_NAME_PROPERTY = "drools:packageName";
- /**
- * Constructs a RuleItem object, setting its node attribute to the specified node.
- *
- * @param rulesRepository the rulesRepository that instantiated this object
- * @param node the node in the repository that this RuleItem corresponds to
- * @throws RulesRepositoryException
- */
- public AssetItem(RulesRepository rulesRepository,
- Node node) throws RulesRepositoryException {
- super( rulesRepository,
- node );
- try {
- //make sure this node is a rule node
- if ( !(this.node.getPrimaryNodeType().getName().equals( RULE_NODE_TYPE_NAME ) || isHistoricalVersion()) ) {
- String message = this.node.getName() + " is not a node of type " + RULE_NODE_TYPE_NAME + " nor nt:version. It is a node of type: " + this.node.getPrimaryNodeType().getName();
- log.error( message );
- throw new RulesRepositoryException( message );
- }
- } catch ( Exception e ) {
- log.error( "Caught exception",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ /**
+ * Constructs a RuleItem object, setting its node attribute to the specified
+ * node.
+ *
+ * @param rulesRepository
+ * the rulesRepository that instantiated this object
+ * @param node
+ * the node in the repository that this RuleItem corresponds to
+ * @throws RulesRepositoryException
+ */
+ public AssetItem(RulesRepository rulesRepository, Node node)
+ throws RulesRepositoryException {
+ super(rulesRepository, node);
+ try {
+ // make sure this node is a rule node
+ if (!(this.node.getPrimaryNodeType().getName().equals(
+ RULE_NODE_TYPE_NAME) || isHistoricalVersion())) {
+ String message = this.node.getName()
+ + " is not a node of type " + RULE_NODE_TYPE_NAME
+ + " nor nt:version. It is a node of type: "
+ + this.node.getPrimaryNodeType().getName();
+ log.error(message);
+ throw new RulesRepositoryException(message);
+ }
+ } catch (Exception e) {
+ log.error("Caught exception", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- public AssetItem() {
- super( null,
- null );
- }
+ public AssetItem() {
+ super(null, null);
+ }
- /**
- * returns the string contents of the rule node.
- * If this is a binary asset, this will return null (use getBinaryContent instead).
- */
- public String getContent() throws RulesRepositoryException {
- return getContent( false );
- }
+ /**
+ * returns the string contents of the rule node. If this is a binary asset,
+ * this will return null (use getBinaryContent instead).
+ */
+ public String getContent() throws RulesRepositoryException {
+ return getContent(false);
+ }
- /**
- * Only for use in the StorageEventManager, for passing the fromRepo parameter
- *
- * returns the string contents of the rule node.
- * If this is a binary asset, this will return null (use getBinaryContent instead).
- */
- public String getContent(Boolean fromRepo) throws RulesRepositoryException {
- try {
+ /**
+ * Only for use in the StorageEventManager, for passing the fromRepo
+ * parameter
+ *
+ * returns the string contents of the rule node. If this is a binary asset,
+ * this will return null (use getBinaryContent instead).
+ */
+ public String getContent(Boolean fromRepo) throws RulesRepositoryException {
+ try {
- if ( StorageEventManager.hasLoadEvent() && !fromRepo ) {
- return IOUtils.toString( StorageEventManager.getLoadEvent().loadContent( this ) );
- }
+ if (StorageEventManager.hasLoadEvent() && !fromRepo) {
+ return IOUtils.toString(StorageEventManager.getLoadEvent()
+ .loadContent(this));
+ }
- if ( isBinary() ) {
- return new String( this.getBinaryContentAsBytes() );
- }
- Node ruleNode = getVersionContentNode();
- if ( ruleNode.hasProperty( CONTENT_PROPERTY_NAME ) ) {
- Property data = ruleNode.getProperty( CONTENT_PROPERTY_NAME );
- return data.getValue().getString();
+ if (isBinary()) {
+ return new String(this.getBinaryContentAsBytes());
+ }
+ Node ruleNode = getVersionContentNode();
+ if (ruleNode.hasProperty(CONTENT_PROPERTY_NAME)) {
+ Property data = ruleNode.getProperty(CONTENT_PROPERTY_NAME);
+ return data.getValue().getString();
- } else {
- return "";
- }
- } catch ( Exception e ) {
- log.error( "Caught Exception",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ } else {
+ return "";
+ }
+ } catch (Exception e) {
+ log.error("Caught Exception", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * returns the number of bytes of the content.
- */
- public long getContentLength() {
- try {
- Node ruleNode = getVersionContentNode();
- if ( ruleNode.hasProperty( CONTENT_PROPERTY_BINARY_NAME ) ) {
- Property data = ruleNode.getProperty( CONTENT_PROPERTY_BINARY_NAME );
- return data.getLength();
- } else {
- if ( ruleNode.hasProperty( CONTENT_PROPERTY_NAME ) ) {
- Property data = ruleNode.getProperty( CONTENT_PROPERTY_NAME );
- return data.getLength();
- } else {
- return 0;
- }
- }
- } catch ( RepositoryException e ) {
- log.error( e );
- throw new RulesRepositoryException( e );
- }
- }
+ /**
+ * returns the number of bytes of the content.
+ */
+ public long getContentLength() {
+ try {
+ Node ruleNode = getVersionContentNode();
+ if (ruleNode.hasProperty(CONTENT_PROPERTY_BINARY_NAME)) {
+ Property data = ruleNode
+ .getProperty(CONTENT_PROPERTY_BINARY_NAME);
+ return data.getLength();
+ } else {
+ if (ruleNode.hasProperty(CONTENT_PROPERTY_NAME)) {
+ Property data = ruleNode.getProperty(CONTENT_PROPERTY_NAME);
+ return data.getLength();
+ } else {
+ return 0;
+ }
+ }
+ } catch (RepositoryException e) {
+ log.error(e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * True if this is a binary asset (or has binary content).
- */
- public boolean isBinary() {
- try {
- Node ruleNode = getVersionContentNode();
- return ruleNode.hasProperty( CONTENT_PROPERTY_BINARY_NAME );
- } catch ( RepositoryException e ) {
- log.error( e );
- throw new RulesRepositoryException( e );
- }
- }
+ /**
+ * True if this is a binary asset (or has binary content).
+ */
+ public boolean isBinary() {
+ try {
+ Node ruleNode = getVersionContentNode();
+ return ruleNode.hasProperty(CONTENT_PROPERTY_BINARY_NAME);
+ } catch (RepositoryException e) {
+ log.error(e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * If this asset contains binary data, this is how you return it.
- * Otherwise it will return null.
- */
- public InputStream getBinaryContentAttachment() {
- try {
- if ( StorageEventManager.hasLoadEvent() ) {
- return StorageEventManager.getLoadEvent().loadContent( this );
- }
- Node ruleNode = getVersionContentNode();
- if ( ruleNode.hasProperty( CONTENT_PROPERTY_BINARY_NAME ) ) {
- Property data = ruleNode.getProperty( CONTENT_PROPERTY_BINARY_NAME );
- return data.getStream();
- } else {
- if ( ruleNode.hasProperty( CONTENT_PROPERTY_NAME ) ) {
- Property data = ruleNode.getProperty( CONTENT_PROPERTY_NAME );
- return data.getStream();
- }
- return null;
- }
- } catch ( Exception e ) {
- log.error( "Caught Exception",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ /**
+ * If this asset contains binary data, this is how you return it. Otherwise
+ * it will return null.
+ */
+ public InputStream getBinaryContentAttachment() {
+ try {
+ if (StorageEventManager.hasLoadEvent()) {
+ return StorageEventManager.getLoadEvent().loadContent(this);
+ }
+ Node ruleNode = getVersionContentNode();
+ if (ruleNode.hasProperty(CONTENT_PROPERTY_BINARY_NAME)) {
+ Property data = ruleNode
+ .getProperty(CONTENT_PROPERTY_BINARY_NAME);
+ return data.getStream();
+ } else {
+ if (ruleNode.hasProperty(CONTENT_PROPERTY_NAME)) {
+ Property data = ruleNode.getProperty(CONTENT_PROPERTY_NAME);
+ return data.getStream();
+ }
+ return null;
+ }
+ } catch (Exception e) {
+ log.error("Caught Exception", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /** Get the name of the "file" attachment, if one is set. Null otherwise */
- public String getBinaryContentAttachmentFileName() {
- return getStringProperty( CONTENT_PROPERTY_ATTACHMENT_FILENAME );
- }
+ /** Get the name of the "file" attachment, if one is set. Null otherwise */
+ public String getBinaryContentAttachmentFileName() {
+ return getStringProperty(CONTENT_PROPERTY_ATTACHMENT_FILENAME);
+ }
- /**
- * This is a convenience method for returning the binary data as a byte array.
- */
- public byte[] getBinaryContentAsBytes() {
- try {
- Node ruleNode = getVersionContentNode();
- if ( StorageEventManager.hasLoadEvent() ) {
- return IOUtils.toByteArray( StorageEventManager.getLoadEvent().loadContent( this ) );
- }
- if ( isBinary() ) {
- Property data = ruleNode.getProperty( CONTENT_PROPERTY_BINARY_NAME );
- InputStream in = data.getStream();
+ /**
+ * This is a convenience method for returning the binary data as a byte
+ * array.
+ */
+ public byte[] getBinaryContentAsBytes() {
+ try {
+ Node ruleNode = getVersionContentNode();
+ if (StorageEventManager.hasLoadEvent()) {
+ return IOUtils.toByteArray(StorageEventManager.getLoadEvent()
+ .loadContent(this));
+ }
+ if (isBinary()) {
+ Property data = ruleNode
+ .getProperty(CONTENT_PROPERTY_BINARY_NAME);
+ InputStream in = data.getStream();
- // Create the byte array to hold the data
- byte[] bytes = new byte[(int) data.getLength()];
+ // Create the byte array to hold the data
+ byte[] bytes = new byte[(int) data.getLength()];
- // Read in the bytes
- int offset = 0;
- int numRead = 0;
- while ( offset < bytes.length && (numRead = in.read( bytes,
- offset,
- bytes.length - offset )) >= 0 ) {
- offset += numRead;
- }
+ // Read in the bytes
+ int offset = 0;
+ int numRead = 0;
+ while (offset < bytes.length
+ && (numRead = in.read(bytes, offset, bytes.length
+ - offset)) >= 0) {
+ offset += numRead;
+ }
- // Ensure all the bytes have been read in
- if ( offset < bytes.length ) {
- throw new RulesRepositoryException( "Could not completely read asset " + getName() );
- }
+ // Ensure all the bytes have been read in
+ if (offset < bytes.length) {
+ throw new RulesRepositoryException(
+ "Could not completely read asset " + getName());
+ }
- // Close the input stream and return bytes
- in.close();
- return bytes;
- } else {
- return getContent().getBytes();
- }
- } catch ( Exception e ) {
- log.error( e );
- if ( e instanceof RuntimeException ) throw (RuntimeException) e;
- throw new RulesRepositoryException( e );
- }
- }
+ // Close the input stream and return bytes
+ in.close();
+ return bytes;
+ } else {
+ return getContent().getBytes();
+ }
+ } catch (Exception e) {
+ log.error(e);
+ if (e instanceof RuntimeException)
+ throw (RuntimeException) e;
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * @return the date the rule becomes effective
- * @throws RulesRepositoryException
- */
- public Calendar getDateEffective() throws RulesRepositoryException {
- try {
- Node ruleNode = getVersionContentNode();
+ /**
+ * @return the date the rule becomes effective
+ * @throws RulesRepositoryException
+ */
+ public Calendar getDateEffective() throws RulesRepositoryException {
+ try {
+ Node ruleNode = getVersionContentNode();
- Property dateEffectiveProperty = ruleNode.getProperty( DATE_EFFECTIVE_PROPERTY_NAME );
- return dateEffectiveProperty.getDate();
- } catch ( PathNotFoundException e ) {
- // doesn't have this property
- return null;
- } catch ( Exception e ) {
- log.error( "Caught Exception",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ Property dateEffectiveProperty = ruleNode
+ .getProperty(DATE_EFFECTIVE_PROPERTY_NAME);
+ return dateEffectiveProperty.getDate();
+ } catch (PathNotFoundException e) {
+ // doesn't have this property
+ return null;
+ } catch (Exception e) {
+ log.error("Caught Exception", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * @return if this rule is disabled
- * @throws RulesRepositoryException
- */
- public boolean getDisabled() throws RulesRepositoryException {
- try {
- Node ruleNode = getVersionContentNode();
+ /**
+ * @return if this rule is disabled
+ * @throws RulesRepositoryException
+ */
+ public boolean getDisabled() throws RulesRepositoryException {
+ try {
+ Node ruleNode = getVersionContentNode();
- Property disabled = ruleNode.getProperty( DISABLED_PROPERTY_NAME );
- return disabled.getBoolean();
- } catch ( PathNotFoundException e ) {
- // doesn't have this property
- return false;
- } catch ( Exception e ) {
- log.error( "Caught Exception",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ Property disabled = ruleNode.getProperty(DISABLED_PROPERTY_NAME);
+ return disabled.getBoolean();
+ } catch (PathNotFoundException e) {
+ // doesn't have this property
+ return false;
+ } catch (Exception e) {
+ log.error("Caught Exception", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * Creates a new version of this object's rule node, updating the effective date for the
- * rule node.
- *
- * @param newDateEffective the new effective date for the rule
- * @throws RulesRepositoryException
- */
- public void updateDateEffective(Calendar newDateEffective) throws RulesRepositoryException {
- checkIsUpdateable();
- checkout();
- try {
- this.node.setProperty( DATE_EFFECTIVE_PROPERTY_NAME,
- newDateEffective );
- } catch ( RepositoryException e ) {
- log.error( "Caught Exception",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ /**
+ * Creates a new version of this object's rule node, updating the effective
+ * date for the rule node.
+ *
+ * @param newDateEffective
+ * the new effective date for the rule
+ * @throws RulesRepositoryException
+ */
+ public void updateDateEffective(Calendar newDateEffective)
+ throws RulesRepositoryException {
+ checkIsUpdateable();
+ checkout();
+ try {
+ this.node.setProperty(DATE_EFFECTIVE_PROPERTY_NAME,
+ newDateEffective);
+ } catch (RepositoryException e) {
+ log.error("Caught Exception", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * Creates a new version of this object's rule node, updating the disable value for the
- * rule node.
- *
- * @param disabled is this rule disabled
- * @throws RulesRepositoryException
- */
- public void updateDisabled(boolean disabled) throws RulesRepositoryException {
- checkIsUpdateable();
- checkout();
- try {
- this.node.setProperty( DISABLED_PROPERTY_NAME,
- disabled );
- } catch ( RepositoryException e ) {
- log.error( "Caught Exception",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ /**
+ * Creates a new version of this object's rule node, updating the disable
+ * value for the rule node.
+ *
+ * @param disabled
+ * is this rule disabled
+ * @throws RulesRepositoryException
+ */
+ public void updateDisabled(boolean disabled)
+ throws RulesRepositoryException {
+ checkIsUpdateable();
+ checkout();
+ try {
+ this.node.setProperty(DISABLED_PROPERTY_NAME, disabled);
+ } catch (RepositoryException e) {
+ log.error("Caught Exception", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * @return the date the rule becomes expired
- * @throws RulesRepositoryException
- */
- public Calendar getDateExpired() throws RulesRepositoryException {
- try {
- Node ruleNode = getVersionContentNode();
+ /**
+ * @return the date the rule becomes expired
+ * @throws RulesRepositoryException
+ */
+ public Calendar getDateExpired() throws RulesRepositoryException {
+ try {
+ Node ruleNode = getVersionContentNode();
- Property dateExpiredProperty = ruleNode.getProperty( DATE_EXPIRED_PROPERTY_NAME );
- return dateExpiredProperty.getDate();
- } catch ( PathNotFoundException e ) {
- // doesn't have this property
- return null;
- } catch ( Exception e ) {
- log.error( "Caught Exception",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ Property dateExpiredProperty = ruleNode
+ .getProperty(DATE_EXPIRED_PROPERTY_NAME);
+ return dateExpiredProperty.getDate();
+ } catch (PathNotFoundException e) {
+ // doesn't have this property
+ return null;
+ } catch (Exception e) {
+ log.error("Caught Exception", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * Creates a new version of this object's rule node, updating the expired date for the
- * rule node.
- *
- * @param newDateExpired the new expired date for the rule
- * @throws RulesRepositoryException
- */
- public void updateDateExpired(Calendar newDateExpired) throws RulesRepositoryException {
- checkout();
+ /**
+ * Creates a new version of this object's rule node, updating the expired
+ * date for the rule node.
+ *
+ * @param newDateExpired
+ * the new expired date for the rule
+ * @throws RulesRepositoryException
+ */
+ public void updateDateExpired(Calendar newDateExpired)
+ throws RulesRepositoryException {
+ checkout();
- try {
- this.node.setProperty( DATE_EXPIRED_PROPERTY_NAME,
- newDateExpired );
- } catch ( Exception e ) {
- log.error( "Caught Exception",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ try {
+ this.node.setProperty(DATE_EXPIRED_PROPERTY_NAME, newDateExpired);
+ } catch (Exception e) {
+ log.error("Caught Exception", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * This will update the asset's content (checking it out if it is not already).
- * This will not save the session or create a new version of the node
- * (this has to be done seperately, as several properties may change as part of one edit).
- * This is only used if the asset is a textual asset. For binary, use the updateBinaryContent method
- * instead.
- */
- public AssetItem updateContent(String newRuleContent) throws RulesRepositoryException {
- checkout();
- try {
- if ( this.isBinary() ) {
- this.updateBinaryContentAttachment( new ByteArrayInputStream( newRuleContent.getBytes() ) );
- }
- this.node.setProperty( CONTENT_PROPERTY_NAME,
- newRuleContent );
- return this;
- } catch ( RepositoryException e ) {
- log.error( "Unable to update the asset content",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ /**
+ * This will update the asset's content (checking it out if it is not
+ * already). This will not save the session or create a new version of the
+ * node (this has to be done seperately, as several properties may change as
+ * part of one edit). This is only used if the asset is a textual asset. For
+ * binary, use the updateBinaryContent method instead.
+ */
+ public AssetItem updateContent(String newRuleContent)
+ throws RulesRepositoryException {
+ checkout();
+ try {
+ if (this.isBinary()) {
+ this.updateBinaryContentAttachment(new ByteArrayInputStream(
+ newRuleContent.getBytes()));
+ }
+ this.node.setProperty(CONTENT_PROPERTY_NAME, newRuleContent);
+ return this;
+ } catch (RepositoryException e) {
+ log.error("Unable to update the asset content", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * If the asset is a binary asset, then use this to update the content
- * (do NOT use text).
- */
- public AssetItem updateBinaryContentAttachment(InputStream data) {
- checkout();
- try {
- this.node.setProperty( CONTENT_PROPERTY_BINARY_NAME,
- data );
- return this;
- } catch ( RepositoryException e ) {
- log.error( "Unable to update the assets binary content",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ /**
+ * If the asset is a binary asset, then use this to update the content (do
+ * NOT use text).
+ */
+ public AssetItem updateBinaryContentAttachment(InputStream data) {
+ checkout();
+ try {
+ this.node.setProperty(CONTENT_PROPERTY_BINARY_NAME, data);
+ return this;
+ } catch (RepositoryException e) {
+ log.error("Unable to update the assets binary content", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * Optionally set the filename to be associated with the binary content.
- */
- public void updateBinaryContentAttachmentFileName(String name) {
- updateStringProperty( name,
- CONTENT_PROPERTY_ATTACHMENT_FILENAME );
- }
+ /**
+ * Optionally set the filename to be associated with the binary content.
+ */
+ public void updateBinaryContentAttachmentFileName(String name) {
+ updateStringProperty(name, CONTENT_PROPERTY_ATTACHMENT_FILENAME);
+ }
- /**
- * This updates a user defined property (not one of the intrinsic ones).
- */
- public void updateUserProperty(String propertyName,
- String value) {
- if ( propertyName.startsWith( "drools:" ) ) {
- throw new IllegalArgumentException( "Can only set the pre defined fields using the appropriate methods." );
- }
- updateStringProperty( value,
- propertyName );
+ /**
+ * This updates a user defined property (not one of the intrinsic ones).
+ */
+ public void updateUserProperty(String propertyName, String value) {
+ if (propertyName.startsWith("drools:")) {
+ throw new IllegalArgumentException(
+ "Can only set the pre defined fields using the appropriate methods.");
+ }
+ updateStringProperty(value, propertyName);
- }
+ }
- /**
- * Nicely formats the information contained by the node that this object encapsulates
- */
- public String toString() {
- try {
- StringBuffer returnString = new StringBuffer();
- returnString.append( "Content of rule item named '" + this.getName() + "':\n" );
- returnString.append( "Content: " + this.getContent() + "\n" );
- returnString.append( "------\n" );
+ /**
+ * Nicely formats the information contained by the node that this object
+ * encapsulates
+ */
+ public String toString() {
+ try {
+ StringBuffer returnString = new StringBuffer();
+ returnString.append("Content of rule item named '" + this.getName()
+ + "':\n");
+ returnString.append("Content: " + this.getContent() + "\n");
+ returnString.append("------\n");
- returnString.append( "Archived: " + this.isArchived() + "\n" );
- returnString.append( "------\n" );
+ returnString.append("Archived: " + this.isArchived() + "\n");
+ returnString.append("------\n");
- returnString.append( "Date Effective: " + this.getDateEffective() + "\n" );
- returnString.append( "Date Expired: " + this.getDateExpired() + "\n" );
- returnString.append( "------\n" );
+ returnString.append("Date Effective: " + this.getDateEffective()
+ + "\n");
+ returnString
+ .append("Date Expired: " + this.getDateExpired() + "\n");
+ returnString.append("------\n");
- returnString.append( "Rule state: " );
- StateItem stateItem = this.getState();
- if ( stateItem != null ) {
- returnString.append( this.getState().getName() + "\n" );
- } else {
- returnString.append( "NO STATE SET FOR THIS NODE\n" );
- }
- returnString.append( "------\n" );
+ returnString.append("Rule state: ");
+ StateItem stateItem = this.getState();
+ if (stateItem != null) {
+ returnString.append(this.getState().getName() + "\n");
+ } else {
+ returnString.append("NO STATE SET FOR THIS NODE\n");
+ }
+ returnString.append("------\n");
- returnString.append( "Rule tags:\n" );
- for ( Iterator it = this.getCategories().iterator(); it.hasNext(); ) {
- CategoryItem currentTag = (CategoryItem) it.next();
- returnString.append( currentTag.getName() + "\n" );
- }
- returnString.append( "--------------\n" );
- return returnString.toString();
- } catch ( Exception e ) {
- throw new RulesRepositoryException( e );
- }
- }
+ returnString.append("Rule tags:\n");
+ for (Iterator it = this.getCategories().iterator(); it.hasNext();) {
+ CategoryItem currentTag = (CategoryItem) it.next();
+ returnString.append(currentTag.getName() + "\n");
+ }
+ returnString.append("--------------\n");
+ return returnString.toString();
+ } catch (Exception e) {
+ throw new RulesRepositoryException(e);
+ }
+ }
- public VersionableItem getPrecedingVersion() throws RulesRepositoryException {
- try {
- Node precedingVersionNode = this.getPrecedingVersionNode();
- if ( precedingVersionNode != null ) {
- return new AssetItem( this.rulesRepository,
- precedingVersionNode );
- } else {
- return null;
- }
- } catch ( Exception e ) {
- log.error( "Caught exception",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ public VersionableItem getPrecedingVersion()
+ throws RulesRepositoryException {
+ try {
+ Node precedingVersionNode = this.getPrecedingVersionNode();
+ if (precedingVersionNode != null) {
+ return new AssetItem(this.rulesRepository, precedingVersionNode);
+ } else {
+ return null;
+ }
+ } catch (Exception e) {
+ log.error("Caught exception", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- public VersionableItem getSucceedingVersion() throws RulesRepositoryException {
- try {
- Node succeedingVersionNode = this.getSucceedingVersionNode();
- if ( succeedingVersionNode != null ) {
- return new AssetItem( this.rulesRepository,
- succeedingVersionNode );
- } else {
- return null;
- }
- } catch ( Exception e ) {
- log.error( "Caught exception",
- e );
- throw new RulesRepositoryException( e );
- }
- }
+ public VersionableItem getSucceedingVersion()
+ throws RulesRepositoryException {
+ try {
+ Node succeedingVersionNode = this.getSucceedingVersionNode();
+ if (succeedingVersionNode != null) {
+ return new AssetItem(this.rulesRepository,
+ succeedingVersionNode);
+ } else {
+ return null;
+ }
+ } catch (Exception e) {
+ log.error("Caught exception", e);
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * Get the name of the enclosing package.
- * As assets are stored in versionable subfolders, this means walking up 2 levels in the
- * hierarchy to get to the enclosing "package" node.
- */
- public String getPackageName() {
- return super.getStringProperty( PACKAGE_NAME_PROPERTY );
- }
+ /**
+ * Get the name of the enclosing package. As assets are stored in
+ * versionable subfolders, this means walking up 2 levels in the hierarchy
+ * to get to the enclosing "package" node.
+ */
+ public String getPackageName() {
+ return super.getStringProperty(PACKAGE_NAME_PROPERTY);
+ }
- /**
- * @return A property value (for a user defined property).
- */
- public String getUserProperty(String property) {
- return getStringProperty( property );
- }
+ /**
+ * @return A property value (for a user defined property).
+ */
+ public String getUserProperty(String property) {
+ return getStringProperty(property);
+ }
- /**
- * This will remove the item.
- * The repository will need to be saved for this to take effect.
- * Typically the package that contains this should be versioned before removing this,
- * to make it easy to roll back.
- */
- public void remove() {
+ /**
+ * This will remove the item. The repository will need to be saved for this
+ * to take effect. Typically the package that contains this should be
+ * versioned before removing this, to make it easy to roll back.
+ */
+ public void remove() {
- if ( StorageEventManager.hasSaveEvent() ) {
- StorageEventManager.getSaveEvent().onAssetDelete( this );
- }
+ if (StorageEventManager.hasSaveEvent()) {
+ StorageEventManager.getSaveEvent().onAssetDelete(this);
+ }
- checkIsUpdateable();
- if ( this.getDateExpired() != null ) {
- if ( Calendar.getInstance().before( this.getDateExpired() ) ) {
- throw new RulesRepositoryException( "Can't delete an item before its expiry date." );
- }
- }
- try {
- this.node.remove();
- } catch ( RepositoryException e ) {
- throw new RulesRepositoryException( e );
- }
- }
+ checkIsUpdateable();
+ if (this.getDateExpired() != null) {
+ if (Calendar.getInstance().before(this.getDateExpired())) {
+ throw new RulesRepositoryException(
+ "Can't delete an item before its expiry date.");
+ }
+ }
+ try {
+ this.node.remove();
+ } catch (RepositoryException e) {
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- *
- * @return An iterator over the nodes history.
- */
- public AssetHistoryIterator getHistory() {
- return new AssetHistoryIterator( this.rulesRepository,
- this.node );
- }
+ /**
+ *
+ * @return An iterator over the nodes history.
+ */
+ public AssetHistoryIterator getHistory() {
+ return new AssetHistoryIterator(this.rulesRepository, this.node);
+ }
- /**
- * This will get the package an asset item belongs to.
- */
- public PackageItem getPackage() {
+ /**
+ * This will get the package an asset item belongs to.
+ */
+ public PackageItem getPackage() {
- try {
- if ( this.isHistoricalVersion() ) {
- return this.rulesRepository.loadPackage( this.getPackageName() );
- }
- return new PackageItem( this.rulesRepository,
- this.node.getParent().getParent() );
- } catch ( RepositoryException e ) {
- throw new RulesRepositoryException( e );
- }
- }
+ try {
+ if (this.isHistoricalVersion()) {
+ return this.rulesRepository.loadPackage(this.getPackageName());
+ }
+ return new PackageItem(this.rulesRepository, this.node.getParent()
+ .getParent());
+ } catch (RepositoryException e) {
+ throw new RulesRepositoryException(e);
+ }
+ }
- /**
- * This converts a "filename" to an asset name.
- *
- * File name is foo.drl -> ["foo", "drl"]
- *
- * @param fileName
- * @return
- */
- public static String[] getAssetNameFromFileName(String fileName) {
+ /**
+ * This converts a "filename" to an asset name.
+ *
+ * File name is foo.drl -> ["foo", "drl"]
+ *
+ * @param fileName
+ * @return
+ */
+ public static String[] getAssetNameFromFileName(String fileName) {
- String[] r = new String[]{"", ""};
- if ( fileName.endsWith( ".bpel.jar" ) ) {
- r[0] = fileName.substring( 0,
- fileName.lastIndexOf( ".bpel.jar" ) );
- r[1] = "bpel.jar";
- } else if ( fileName.endsWith( ".model.drl" ) ) {
- r[0] = fileName.substring( 0,
- fileName.lastIndexOf( ".model.drl" ) );
- r[1] = "model.drl";
- } else {
- r[0] = fileName.substring( 0,
- fileName.lastIndexOf( "." ) );
- r[1] = fileName.substring( fileName.lastIndexOf( "." ) + 1 );
+ String[] r = new String[] { "", "" };
+ if (!fileName.contains(".")) {
+ r[0] = fileName;
+ } else if (fileName.endsWith(".bpel.jar")) {
+ r[0] = fileName.substring(0, fileName.lastIndexOf(".bpel.jar"));
+ r[1] = "bpel.jar";
+ } else if (fileName.endsWith(".model.drl")) {
+ r[0] = fileName.substring(0, fileName.lastIndexOf(".model.drl"));
+ r[1] = "model.drl";
+ } else {
+ r[0] = fileName.substring(0, fileName.lastIndexOf("."));
+ r[1] = fileName.substring(fileName.lastIndexOf(".") + 1);
- }
- return r;
+ }
+ return r;
- }
+ }
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list