You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by sa...@apache.org on 2012/04/18 15:37:25 UTC
svn commit: r1327506 - in
/ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/api/jackrabbit:
JackrabbitArticleHelper.java JackrabbitFileHelper.java
Author: sascharodekamp
Date: Wed Apr 18 13:37:25 2012
New Revision: 1327506
URL: http://svn.apache.org/viewvc?rev=1327506&view=rev
Log:
Small jackrabbit API code cleanups and refactoring, no functional changes
Modified:
ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/api/jackrabbit/JackrabbitArticleHelper.java
ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/api/jackrabbit/JackrabbitFileHelper.java
Modified: ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/api/jackrabbit/JackrabbitArticleHelper.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/api/jackrabbit/JackrabbitArticleHelper.java?rev=1327506&r1=1327505&r2=1327506&view=diff
==============================================================================
--- ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/api/jackrabbit/JackrabbitArticleHelper.java (original)
+++ ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/api/jackrabbit/JackrabbitArticleHelper.java Wed Apr 18 13:37:25 2012
@@ -84,13 +84,10 @@ public class JackrabbitArticleHelper ext
contentPath = determineContentLanguagePath(contentPath, language);
OfbizRepositoryMapping orm = super.access.getContentObject(contentPath);
+ setArticleContentObject(orm);
- if (checkAndSetArticleContentObject(orm)) {
- article.setVersion(super.access.getBaseVersion(contentPath));
- return article;
- } else {
- throw new ClassCastException("The content object for the path: " + contentPath + " is not an article content object. This Helper can only handle content objects with the type: " + JackrabbitArticle.class.getName());
- }
+ article.setVersion(super.access.getBaseVersion(contentPath));
+ return article;
}
/*
@@ -103,16 +100,14 @@ public class JackrabbitArticleHelper ext
@Override
public JackrabbitArticle readContentFromRepository(String contentPath, String language, String version) throws ClassCastException, PathNotFoundException {
contentPath = determineContentLanguagePath(contentPath, language);
+
OfbizRepositoryMapping orm = super.access.getContentObject(contentPath, version);
+ setArticleContentObject(orm);
- if (checkAndSetArticleContentObject(orm)) {
- // the content path must be manipulated because, the jackrabbit orm
- // returns a full blown path with version information.
- article.setPath(contentPath);
- return article;
- } else {
- throw new ClassCastException("The content object for the path: " + contentPath + " is not an article content object. This Helper can only handle content objects with the type: " + JackrabbitArticle.class.getName());
- }
+ // manipulating the content path, because the jackrabbit orm
+ // returns a content path with version information.
+ article.setPath(contentPath);
+ return article;
}
/*
@@ -129,9 +124,7 @@ public class JackrabbitArticleHelper ext
language = JackrabbitUtils.determindeTheDefaultLanguage();
}
- // construct the content article object
article = new JackrabbitArticle(contentPath, language, title, content, publicationDate);
-
super.access.storeContentObject(article);
}
@@ -168,7 +161,6 @@ public class JackrabbitArticleHelper ext
versions = super.access.getVersionList(article.getPath());
} else {
Debug.logWarning("No Article is loaded from the repository, please load an article first before requesting the version list.", module);
- versions = new ArrayList<String>(1);
}
return versions;
@@ -227,12 +219,12 @@ public class JackrabbitArticleHelper ext
*/
private String determineContentLanguagePath(String contentPath, String contentLanguage) throws PathNotFoundException {
// return if only the root node path is requested
- if (ConstantsJackrabbit.ROOTPATH.equals(contentPath)) {
+ if (JackrabbitUtils.isARootNode(contentPath)) {
return contentPath;
}
// contentLanaguage should never be null, because the concatenation
- // looks really bad if the String have a null value.
+ // goes wrong if the String have a null value.
if (contentLanguage == null) {
contentLanguage = "";
}
@@ -248,8 +240,10 @@ public class JackrabbitArticleHelper ext
if (super.access.checkIfNodeExist(canonicalizedContentPath + contentLanguage) && checkIfNodeHaveValidLanguageMixIn(canonicalizedContentPath + contentLanguage)) {
contentPath = canonicalizedContentPath + contentLanguage;
+
} else if (super.access.checkIfNodeExist(canonicalizedContentPath + JackrabbitUtils.determindeTheDefaultLanguage())) {
contentPath = canonicalizedContentPath + JackrabbitUtils.determindeTheDefaultLanguage();
+
} else {
contentPath = determineFirstAvailableLanguageNode(canonicalizedContentPath);
}
@@ -279,7 +273,7 @@ public class JackrabbitArticleHelper ext
}
}
childNodes = null;
- } catch(PathNotFoundException pnf) {
+ } catch (PathNotFoundException pnf) {
throw new PathNotFoundException(pnf);
} catch (RepositoryException e) {
Debug.logError(e, module);
@@ -299,18 +293,15 @@ public class JackrabbitArticleHelper ext
String[] splitContentPath = contentPath.split(ConstantsJackrabbit.NODEPATHDELIMITER);
String canonicalizedCotnentPath = "";
- // check if the last chunk contains a language which is part of our
- // locale list, but this should only be called if the language should be
- // changed. Because it is possible to request a node directly with the
- // language flag. That means if the node path contains a language and
- // the language should not be changed (contentLanaguage is empty), the
- // language flag should be stay in the content path.
+ // check if the last chunk contains a language flags, which is part of
+ // our locale list.
+ // It's possible to request a node directly with the language in the
+ // URL. If the node path contains a language and the language should not
+ // be changed (contentLanaguage is empty), the language flag stay in the
+ // content path. Otherwise it will be removed.
if (UtilValidate.isNotEmpty(contentLanguage) && possibleLocales.contains(splitContentPath[splitContentPath.length - 1])) {
- // this local field should not be part of our path string
canonicalizedCotnentPath = buildCanonicalizeContentPath(splitContentPath, splitContentPath.length - 1);
} else {
- // make sure the passed content path is absolute and ends with a
- // slash "/"
canonicalizedCotnentPath = buildCanonicalizeContentPath(splitContentPath, splitContentPath.length);
}
@@ -372,7 +363,7 @@ public class JackrabbitArticleHelper ext
/**
* Checks if a node have the property <code>localized</code> and if this
- * property is be <code>true</code>
+ * property is <code>true</code>
*
* @param nodeWhichShouldHaveAValidLanguageFlag
* @return
@@ -381,25 +372,25 @@ public class JackrabbitArticleHelper ext
* @throws PathNotFoundException
*/
private boolean checkIfNodeHaveValidLanguageMixIn(Node nodeWhichShouldHaveAValidLanguageFlag) throws RepositoryException, ValueFormatException, PathNotFoundException {
- return nodeWhichShouldHaveAValidLanguageFlag.hasProperty("localized") && nodeWhichShouldHaveAValidLanguageFlag.getProperty("localized").getBoolean();
+ boolean hasProperty = nodeWhichShouldHaveAValidLanguageFlag.hasProperty("localized");
+
+ return hasProperty && nodeWhichShouldHaveAValidLanguageFlag.getProperty("localized").getBoolean();
}
/**
- * Checks if the <code>orm</code> Object is an instance of
- * <code>JackrabbitArticle</code>, set the class variable and return true,
- * otherwise false will be returned and the class variable is det to null.
+ * Set the article class variable if the <code>orm</code> Object is an
+ * instance of <code>JackrabbitArticle</code>. Throws a ClassCastException
+ * if the <code>orm</code> Object is from another type.
*
* @param orm
+ * @throws ClassCastException
* @return
*/
- private boolean checkAndSetArticleContentObject(OfbizRepositoryMapping orm) {
+ private void setArticleContentObject(OfbizRepositoryMapping orm) throws ClassCastException {
if (orm != null && orm instanceof JackrabbitArticle) {
article = (JackrabbitArticle) orm;
- return true;
- } else {
- article = null;
}
- return false;
+ throw new ClassCastException("The content object for the path: " + orm.getPath() + " is not an article content object. This Helper can only handle content objects with the type: " + JackrabbitArticle.class.getName());
}
}
Modified: ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/api/jackrabbit/JackrabbitFileHelper.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/api/jackrabbit/JackrabbitFileHelper.java?rev=1327506&r1=1327505&r2=1327506&view=diff
==============================================================================
--- ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/api/jackrabbit/JackrabbitFileHelper.java (original)
+++ ofbiz/trunk/framework/jcr/src/org/ofbiz/jcr/api/jackrabbit/JackrabbitFileHelper.java Wed Apr 18 13:37:25 2012
@@ -75,16 +75,14 @@ public class JackrabbitFileHelper extend
}
if (orm instanceof JackrabbitFile) {
- JackrabbitFile fileObj = (JackrabbitFile) orm;
- hierarchy = fileObj;
- return fileObj;
+ hierarchy = (JackrabbitFile) orm;
} else if (orm instanceof JackrabbitFolder) {
- JackrabbitFolder fileObj = (JackrabbitFolder) orm;
- hierarchy = fileObj;
- return fileObj;
+ hierarchy = (JackrabbitFolder) orm;
+ } else {
+ throw new ClassCastException("The content object for the path: " + contentPath + " is not a file content object. This Helper can only handle content objects with the type: " + JackrabbitFile.class.getName());
}
- throw new ClassCastException("The content object for the path: " + contentPath + " is not a file content object. This Helper can only handle content objects with the type: " + JackrabbitFile.class.getName());
+ return hierarchy;
}
/*