[incbuilder] first version

Change-Id: Ib07e2012b7737892eaad24d1d8dd91526f222212
This commit is contained in:
Jan Koehnlein 2015-04-30 16:38:57 +02:00
parent 7a8797b111
commit 23247748c8

View file

@ -38,6 +38,18 @@ import com.google.inject.Inject;
* @author Moritz Eysholdt
*/
public class JavaIoFileSystemAccess extends AbstractFileSystemAccess2 {
/**
* @since 2.9
* @noextend
* @noimplement
*/
public static interface IFileCallback {
void fileAdded(File file);
void fileDeleted(File file);
}
private IFileCallback callBack;
@Inject
private IEncodingProvider encodingProvider;
@ -75,6 +87,13 @@ public class JavaIoFileSystemAccess extends AbstractFileSystemAccess2 {
this.traceSerializer = traceRegionSerializer;
}
/**
* @since 2.9
*/
public void setCallBack(IFileCallback callBack) {
this.callBack = callBack;
}
@Override
public void generateFile(String fileName, String outputConfigName, CharSequence contents) throws RuntimeIOException {
File file = getFile(fileName, outputConfigName);
@ -87,6 +106,8 @@ public class JavaIoFileSystemAccess extends AbstractFileSystemAccess2 {
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file), encoding);
try {
writer.append(postProcess(fileName, outputConfigName, contents, encoding));
if(callBack != null)
callBack.fileAdded(file);
if (writeTrace)
generateTrace(fileName, outputConfigName, contents);
} finally {
@ -97,11 +118,7 @@ public class JavaIoFileSystemAccess extends AbstractFileSystemAccess2 {
}
}
/**
* Since 2.4 protected
* @since 2.9 public
*/
public void generateTrace(String generatedFile, String outputConfigName, CharSequence contents) {
protected void generateTrace(String generatedFile, String outputConfigName, CharSequence contents) {
try {
if (contents instanceof ITraceRegionProvider) {
String traceFileName = traceFileNameProvider.getTraceFromJava(generatedFile);
@ -110,6 +127,8 @@ public class JavaIoFileSystemAccess extends AbstractFileSystemAccess2 {
try {
AbstractTraceRegion traceRegion = ((ITraceRegionProvider) contents).getTraceRegion();
traceSerializer.writeTraceRegionTo(traceRegion, out);
if(callBack != null)
callBack.fileAdded(traceFile);
} finally {
out.close();
}
@ -199,6 +218,8 @@ public class JavaIoFileSystemAccess extends AbstractFileSystemAccess2 {
} finally {
try {
out.close();
if(callBack != null)
callBack.fileAdded(file);
} finally {
content.close();
}