INTEGRATION: CWS sdk08 (1.17.20); FILE MERGED

2003/10/02 16:02:14 jsc 1.17.20.1: #106565# generate temp files always, rename complete files
This commit is contained in:
Oliver Bolte
2003-10-20 12:09:48 +00:00
parent fbe5486872
commit d2918adf94

View File

@@ -2,9 +2,9 @@
* *
* $RCSfile: javatype.cxx,v $ * $RCSfile: javatype.cxx,v $
* *
* $Revision: 1.17 $ * $Revision: 1.18 $
* *
* last change: $Author: hr $ $Date: 2003-03-19 15:53:45 $ * last change: $Author: obo $ $Date: 2003-10-20 13:09:48 $
* *
* The Contents of this file are made available subject to the terms of * The Contents of this file are made available subject to the terms of
* either of the following licenses * either of the following licenses
@@ -109,18 +109,45 @@ sal_Bool JavaType::dump(JavaOptions* pOptions)
if (pOptions->isValid("-O")) if (pOptions->isValid("-O"))
outPath = pOptions->getOption("-O"); outPath = pOptions->getOption("-O");
OString fileName = createFileNameFromType(outPath, m_typeName, ".java"); OString sFileName = createFileNameFromType(outPath, m_typeName, ".java");
sal_Bool bFileExists = fileExists( sFileName );
sal_Bool bFileCheck = sal_False;
FileStream javaFile(fileName); if ( bFileExists && pOptions->isValid("-G") )
return sal_True;
if ( bFileExists && pOptions->isValid("-Gc") )
bFileCheck = sal_True;
OString sTmpDir = getTempDir(sFileName);
FileStream javaFile;
javaFile.createTempFile(sTmpDir);
OString sTmpFileName;
if(!javaFile.isValid()) if(!javaFile.isValid())
{ {
OString message("cannot open "); OString message("cannot open ");
message += fileName + " for writing"; message += sFileName + " for writing";
throw CannotDumpException(message); throw CannotDumpException(message);
} else
sTmpFileName = javaFile.getName();
ret = dumpFile(javaFile);
javaFile.close();
if (ret) {
ret = makeValidTypeFile(sFileName, sTmpFileName, bFileCheck);
} else {
// remove existing type file if something goes wrong to ensure consistency
if (fileExists(sFileName))
removeTypeFile(sFileName);
// remove tmp file if something goes wrong
removeTypeFile(sTmpFileName);
} }
return dumpFile(javaFile); return ret;
} }
sal_Bool JavaType::dumpDependedTypes(JavaOptions* pOptions) sal_Bool JavaType::dumpDependedTypes(JavaOptions* pOptions)
@@ -1262,9 +1289,16 @@ sal_Bool ModuleType::dump(JavaOptions* pOptions)
OString fieldName; OString fieldName;
OString fieldType; OString fieldType;
OString fileName; OString fileName;
OString sTmpDir;
OString sTmpFileName;
sal_Bool ret;
sal_Bool bFileExists;
sal_Bool bFileCheck;
for (sal_uInt16 i=0; i < fieldCount; i++) for (sal_uInt16 i=0; i < fieldCount; i++)
{ {
ret = sal_False;
bFileCheck = sal_False;
access = m_reader.getFieldAccess(i); access = m_reader.getFieldAccess(i);
if (access == RT_ACCESS_CONST) if (access == RT_ACCESS_CONST)
@@ -1273,14 +1307,24 @@ sal_Bool ModuleType::dump(JavaOptions* pOptions)
fieldType = m_reader.getFieldType(i); fieldType = m_reader.getFieldType(i);
fileName = createFileNameFromType(outPath, m_typeName + "/" + fieldName, ".java"); fileName = createFileNameFromType(outPath, m_typeName + "/" + fieldName, ".java");
FileStream o(fileName); bFileExists = fileExists(fileName);
if ( bFileExists && pOptions->isValid("-G") )
break;
if ( bFileExists && pOptions->isValid("-Gc") )
bFileCheck = sal_True;
sTmpDir = getTempDir(fileName);
FileStream o;
o.createTempFile(sTmpDir);
if(!o.isValid()) if(!o.isValid())
{ {
OString message("cannot open "); OString message("cannot open ");
message += fileName + " for writing"; message += fileName + " for writing";
throw CannotDumpException(message); throw CannotDumpException(message);
} } else
sTmpFileName = o.getName();
dumpPackage(o, sal_True); dumpPackage(o, sal_True);
o << indent() << "public interface " << fieldName << "\n{\n"; o << indent() << "public interface " << fieldName << "\n{\n";
@@ -1299,6 +1343,8 @@ sal_Bool ModuleType::dump(JavaOptions* pOptions)
dec(); dec();
o << "}\n"; o << "}\n";
makeValidTypeFile(fileName, sTmpFileName, bFileCheck);
} }
} }