bug TDI-8370 fixed:<Copy book>Not support check untranspose.

git-svn-id: http://talendforge.org/svn/tos/trunk@94844 f6f1c999-d317-4740-80b0-e6d1abc6f99e
This commit is contained in:
ldong
2012-12-05 06:34:33 +00:00
parent db3e124203
commit 8bdc9db3f0

View File

@@ -221,36 +221,41 @@ public class XmiResourceManager {
return resourceSet.createResource(propertyResourceURI);
}
public Resource getReferenceFileResource(Resource itemResource, String extension, boolean needLoad) {
URI referenceFileURI = getReferenceFileURI(itemResource.getURI(), extension);
public Resource getReferenceFileResource(Resource itemResource, ReferenceFileItem refFile, boolean needLoad) {
URI referenceFileURI = getReferenceFileURI(itemResource.getURI(), refFile.getExtension());
URIConverter converter = resourceSet.getURIConverter();
Resource referenceResource = new ByteArrayResource(referenceFileURI);
InputStream inputStream = null;
List<Resource> resources = new ArrayList<Resource>(resourceSet.getResources());
for (Resource res : resources) {
if (res != null && referenceFileURI.toString().equals(res.getURI().toString())) {
res.unload();
resourceSet.getResources().remove(res);
// in case ESB load reference file from the physcial file,but DI need reference from the EMF,so add this flag
if (refFile.isReloadFromFile()) {
for (Resource res : resources) {
if (res != null && referenceFileURI.toString().equals(res.getURI().toString())) {
res.unload();
resourceSet.getResources().remove(res);
}
}
}
resourceSet.getResources().add(referenceResource);
try {
if (needLoad) {
inputStream = converter.createInputStream(referenceFileURI);
referenceResource.load(inputStream, null);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
resourceSet.getResources().add(referenceResource);
try {
if (inputStream != null) {
inputStream.close();
if (needLoad) {
inputStream = converter.createInputStream(referenceFileURI);
referenceResource.load(inputStream, null);
}
} catch (IOException e) {
ExceptionHandler.process(e);
e.printStackTrace();
} finally {
try {
if (inputStream != null) {
inputStream.close();
}
} catch (IOException e) {
ExceptionHandler.process(e);
}
}
} else {
referenceResource = resourceSet.getResource(referenceFileURI, true);
}
return referenceResource;
}
@@ -363,7 +368,7 @@ public class XmiResourceManager {
// do nothing, consider the file don't exist
itemResource = null;
}
}
}
if (itemResource == null && createIfNotExist) {
itemResource = resourceSet.createResource(itemResourceURI);
}