From: Chad B. <cwb...@us...> - 2005-05-22 18:13:57
|
User: cwbrandon Date: 05/05/22 11:13:44 Modified: src/java/org/andromda/core/repository RepositoryFacadeException.java mdr/src/java/org/andromda/repositories/mdr MDRepositoryFacade.java MDRXmiReferenceResolverContext.java Log: minor cleanup Revision Changes Path 1.7 +20 -6 andromda/src/java/org/andromda/core/repository/RepositoryFacadeException.java Index: RepositoryFacadeException.java =================================================================== RCS file: /cvsroot/andromda/andromda/src/java/org/andromda/core/repository/RepositoryFacadeException.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -w -r1.6 -r1.7 --- RepositoryFacadeException.java 13 Apr 2005 16:26:11 -0000 1.6 +++ RepositoryFacadeException.java 22 May 2005 18:13:32 -0000 1.7 @@ -1,5 +1,6 @@ package org.andromda.core.repository; + /** * An exception thrown whenever an error is encountered while performing processing RepositoryFacade processing. * @@ -28,19 +29,32 @@ } /** + * Constructor for the RepositoryFacadeException object + * + * @param message describes cause of the exception + */ + public RepositoryFacadeException(final Throwable parent) + { + super(parent); + } + + /** * Constructor for the MetaDataReadException object * * @param message describes cause of the exception * @param cause original exception that caused this exception */ - public RepositoryFacadeException(String message, Throwable cause) + public RepositoryFacadeException( + String message, + Throwable cause) { - super(message, getRootCause(cause)); + super(message, + getRootCause(cause)); } - private static Throwable getRootCause(Throwable th) + private static Throwable getRootCause(final Throwable throwable) { - Throwable cause = th; + Throwable cause = throwable; if (cause.getCause() != null) { cause = cause.getCause(); 1.27 +40 -59 repositories/mdr/src/java/org/andromda/repositories/mdr/MDRepositoryFacade.java Index: MDRepositoryFacade.java =================================================================== RCS file: /cvsroot/andromda/repositories/mdr/src/java/org/andromda/repositories/mdr/MDRepositoryFacade.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -w -r1.26 -r1.27 --- MDRepositoryFacade.java 20 May 2005 05:46:33 -0000 1.26 +++ MDRepositoryFacade.java 22 May 2005 18:13:44 -0000 1.27 @@ -44,7 +44,6 @@ protected final static String META_PACKAGE = "UML"; private ModelAccessFacade modelFacade = null; private static MDRepository repository = null; - protected URL metaModelURL; protected RefPackage model = null; @@ -117,19 +116,17 @@ * @see org.andromda.core.common.RepositoryFacade#readModel(java.net.URL, java.lang.String[]) */ public void readModel( - URL modelURL, - String[] moduleSearchPath) + final URL modelURL, + final String[] moduleSearchPath) { - final String methodName = "MDRepositoryFacade.readModel"; try { - MofPackage metaModel = loadMetaModel(metaModelURL); + final MofPackage metaModel = loadMetaModel(metaModelURL); this.model = loadModel(modelURL, moduleSearchPath, metaModel); } - catch (Throwable th) + catch (final Throwable throwable) { - String errMsg = "Error performing " + methodName; - throw new RepositoryFacadeException(errMsg, th); + throw new RepositoryFacadeException(throwable); } if (logger.isDebugEnabled()) @@ -142,22 +139,19 @@ * @see org.andromda.core.repository.RepositoryFacade#readModel(java.io.InputStream, java.lang.String, java.lang.String[]) */ public void readModel( - InputStream stream, - String uri, - String[] moduleSearchPath) + final InputStream stream, + final String uri, + final String[] moduleSearchPath) { - final String methodName = "MDRepositoryFacade.readModel"; try { - MofPackage metaModel = loadMetaModel(metaModelURL); + final MofPackage metaModel = loadMetaModel(metaModelURL); this.model = loadModel(stream, uri, moduleSearchPath, metaModel); } - catch (Throwable th) + catch (final Throwable throwable) { - String errMsg = "Error performing " + methodName; - throw new RepositoryFacadeException(errMsg, th); + throw new RepositoryFacadeException(throwable); } - if (logger.isDebugEnabled()) { logger.debug("created repository"); @@ -215,24 +209,22 @@ try { // ensure the directory we're writing to exists - File file = new File(outputLocation); - File parent = file.getParentFile(); + final File file = new File(outputLocation); + final File parent = file.getParentFile(); if (parent != null) { parent.mkdirs(); } FileOutputStream outputStream = new FileOutputStream(file); - XMIWriter xmiWriter = XMIWriterFactory.getDefault().createXMIWriter(); + final XMIWriter xmiWriter = XMIWriterFactory.getDefault().createXMIWriter(); xmiWriter.getConfiguration().setEncoding(encoding); xmiWriter.write(outputStream, outputLocation, (RefPackage)model, xmiVersion); outputStream.close(); outputStream = null; } - catch (Throwable th) + catch (final Throwable throwable) { - String errMsg = "Error performing MDRepositoryFacade.writeModel"; - logger.error(errMsg, th); - throw new RepositoryFacadeException(errMsg, th); + throw new RepositoryFacadeException(throwable); } } @@ -253,16 +245,9 @@ "Could not find implementation for the component --> '" + ModelAccessFacade.class + "'"); } } - catch (RepositoryFacadeException ex) - { - // Dont do anything with our own exceptions. - throw ex; - } - catch (Throwable th) + catch (final Throwable throwable) { - String errMsg = "Error performing MDRepositoryFacade.getModel"; - logger.error(errMsg); - throw new RepositoryFacadeException(errMsg, th); + throw new RepositoryFacadeException(throwable); } } if (this.model != null) @@ -285,7 +270,7 @@ * @throws IOException * @throws MalformedXMIException */ - private static MofPackage loadMetaModel(URL metaModelURL) + private static MofPackage loadMetaModel(final URL metaModelURL) throws CreationFailedException, IOException, MalformedXMIException { if (logger.isDebugEnabled()) @@ -336,10 +321,10 @@ * @return populated model * @throws CreationFailedException unable to create model in repository */ - private RefPackage loadModel( - URL modelURL, - String[] moduleSearchPath, - MofPackage metaModel) + private final RefPackage loadModel( + final URL modelURL, + final String[] moduleSearchPath, + final MofPackage metaModel) throws CreationFailedException { final RefPackage model = this.getModel(metaModel); @@ -360,11 +345,9 @@ modelURL.toString(), model); } - catch (Throwable th) + catch (final Throwable throwable) { - String errMsg = "Error performing MDRepository.loadModel"; - logger.error(errMsg); - throw new RepositoryFacadeException(errMsg, th); + throw new RepositoryFacadeException(throwable); } if (logger.isDebugEnabled()) { @@ -384,11 +367,11 @@ * @return populated model * @throws CreationFailedException unable to create model in repository */ - private RefPackage loadModel( - InputStream modelStream, - String uri, - String[] moduleSearchPath, - MofPackage metaModel) + private final RefPackage loadModel( + final InputStream modelStream, + final String uri, + final String[] moduleSearchPath, + final MofPackage metaModel) throws CreationFailedException { final RefPackage model = this.getModel(metaModel); @@ -403,11 +386,9 @@ { xmiReader.read(modelStream, uri, model); } - catch (Throwable th) + catch (Throwable throwable) { - String errMsg = "Error performing MDRepository.loadModel"; - logger.error(errMsg); - throw new RepositoryFacadeException(errMsg, th); + throw new RepositoryFacadeException(throwable); } if (logger.isDebugEnabled()) { @@ -424,7 +405,7 @@ * @return the package. * @throws CreationFailedException */ - private RefPackage getModel(MofPackage metaModel) + private RefPackage getModel(final MofPackage metaModel) throws CreationFailedException { RefPackage model = repository.getExtent(EXTENT_NAME); @@ -450,14 +431,14 @@ * @param metaModel meta model to search * @return MofPackage */ - private static MofPackage findPackage( + private final static MofPackage findPackage( String packageName, ModelPackage metaModel) { MofPackage mofPackage = null; - for (Iterator iterator = metaModel.getMofPackage().refAllOfClass().iterator(); iterator.hasNext();) + for (final Iterator iterator = metaModel.getMofPackage().refAllOfClass().iterator(); iterator.hasNext();) { - javax.jmi.model.ModelElement element = (javax.jmi.model.ModelElement)iterator.next(); + final javax.jmi.model.ModelElement element = (javax.jmi.model.ModelElement)iterator.next(); if (element.getName().equals(packageName)) { mofPackage = (MofPackage)element; 1.13 +30 -13 repositories/mdr/src/java/org/andromda/repositories/mdr/MDRXmiReferenceResolverContext.java Index: MDRXmiReferenceResolverContext.java =================================================================== RCS file: /cvsroot/andromda/repositories/mdr/src/java/org/andromda/repositories/mdr/MDRXmiReferenceResolverContext.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -w -r1.12 -r1.13 --- MDRXmiReferenceResolverContext.java 13 Apr 2005 16:26:02 -0000 1.12 +++ MDRXmiReferenceResolverContext.java 22 May 2005 18:13:44 -0000 1.13 @@ -7,13 +7,17 @@ import org.netbeans.api.xmi.XMIInputConfig; import org.netbeans.lib.jmi.xmi.XmiContext; -import javax.jmi.reflect.RefPackage; import java.io.File; import java.io.InputStream; + import java.net.MalformedURLException; import java.net.URL; + import java.util.HashMap; +import javax.jmi.reflect.RefPackage; + + /** * This class supports the expansion of XML HREF references to other modules within a model. The result of the resolver * should be a valid URL. This is necessary for Magic Draw as it doesn't have the entire model referenced but just the @@ -26,10 +30,8 @@ extends XmiContext { private String[] moduleSearchPath; - private static Logger logger = Logger.getLogger(MDRXmiReferenceResolverContext.class); - - private static final HashMap urlMap = new HashMap(); + private final HashMap urlMap = new HashMap(); /** * Constructs an instance of this class. @@ -37,7 +39,10 @@ * @param extents * @param config */ - public MDRXmiReferenceResolverContext(RefPackage[] extents, XMIInputConfig config, String[] moduleSearchPath) + public MDRXmiReferenceResolverContext( + RefPackage[] extents, + XMIInputConfig config, + String[] moduleSearchPath) { super(extents, config); this.moduleSearchPath = moduleSearchPath; @@ -49,7 +54,9 @@ public URL toURL(String systemId) { if (logger.isDebugEnabled()) + { logger.debug("attempting to resolve Xmi Href --> '" + systemId + "'"); + } final String suffix = getSuffix(systemId); @@ -70,7 +77,7 @@ String modelUrlAsString = findModuleURL(suffix); if (StringUtils.isNotBlank(modelUrlAsString)) { - modelUrl = getValidURL(modelUrlAsString); + modelUrl = this.getValidURL(modelUrlAsString); } if (modelUrl == null) { @@ -83,6 +90,7 @@ modelUrl = super.toURL(systemId); } } + // if we've found the module model, log it // and place it in the map so we don't have to // find it if we need it again. @@ -101,18 +109,24 @@ * @param moduleName the name of the module without any path * @return the complete URL string of the module if found (null if not found) */ - private String findModuleURL(String moduleName) + private final String findModuleURL(final String moduleName) { if (moduleSearchPath == null) + { return null; + } if (logger.isDebugEnabled()) + { logger.debug("findModuleURL: moduleSearchPath.length=" + moduleSearchPath.length); + } for (int i = 0; i < moduleSearchPath.length; i++) { - File candidate = new File(moduleSearchPath[i], moduleName); + final File candidate = new File(moduleSearchPath[i], moduleName); if (logger.isDebugEnabled()) + { logger.debug("candidate '" + candidate.toString() + "' exists=" + candidate.exists()); + } if (candidate.exists()) { String urlString; @@ -142,7 +156,7 @@ * @param systemId the system identifier. * @return the suffix as a String. */ - private String getSuffix(String systemId) + private final String getSuffix(String systemId) { int lastSlash = systemId.lastIndexOf("/"); if (lastSlash > 0) @@ -164,10 +178,11 @@ * @param systemId the system identifier. * @return the suffix as a String. */ - private URL findModelUrlOnClasspath(String systemId) + private final URL findModelUrlOnClasspath(final String systemId) { String modelName = StringUtils.substringAfterLast(systemId, "/"); String dot = "."; + // remove the first prefix because it may be an archive // (like magicdraw) modelName = StringUtils.substringBeforeLast(modelName, dot); @@ -181,7 +196,9 @@ for (int ctr = 0; ctr < suffixNum; ctr++) { if (logger.isDebugEnabled()) + { logger.debug("searching for model reference --> '" + modelUrl + "'"); + } String suffix = CLASSPATH_MODEL_SUFFIXES[ctr]; modelUrl = ResourceUtils.getResource(modelName + dot + suffix); if (modelUrl != null) @@ -200,7 +217,7 @@ * @param systemId the system id * @return the URL (if valid) */ - private URL getValidURL(String systemId) + private final URL getValidURL(String systemId) { InputStream stream = null; URL url = null; |