Java: Add some source/sink examples where lifting is applied.

This commit is contained in:
Michael Nebel
2024-06-27 11:15:06 +02:00
parent f7ce4f39ea
commit 22e9ae2793
4 changed files with 58 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ extensions:
extensible: sinkModel
data:
- [ "p", "Sinks", False, "sink", "(Object)", "", "Argument[0]", "test-sink", "manual" ]
- [ "p", "Sinks", False, "sink2", "(Object)", "", "Argument[0]", "test-sink2", "manual" ]
- [ "p", "Sinks", False, "manualSinkAlreadyDefined", "(Object)", "", "Argument[0]", "test-sink", "manual" ]
- addsTo:

View File

@@ -5,6 +5,7 @@ extensions:
extensible: sourceModel
data:
- [ "p", "Sources", False, "source", "()", "", "ReturnValue", "test-source", "manual" ]
- [ "p", "Sources", False, "source2", "()", "", "ReturnValue", "test-source2", "manual" ]
- [ "p", "Sources", False, "manualSourceAlreadyDefined", "()", "", "ReturnValue", "test-source", "manual" ]
- addsTo:

View File

@@ -17,6 +17,10 @@ public class Sinks {
// neutral=p;Sinks;sink;(Object);summary;df-generated
public void sink(Object o) {}
// Defined as a sink in the model file next to the test.
// neutral=p;Sinks;sink2;(Object);summary;df-generated
public void sink2(Object o) {}
// sink=p;Sinks;true;copyFileToDirectory;(Path,Path,CopyOption[]);;Argument[0];path-injection;df-generated
// sink=p;Sinks;true;copyFileToDirectory;(Path,Path,CopyOption[]);;Argument[1];path-injection;df-generated
// neutral=p;Sinks;copyFileToDirectory;(Path,Path,CopyOption[]);summary;df-generated
@@ -77,4 +81,27 @@ public class Sinks {
public void manualSinkAlreadyDefined(Object o) {
sink(o);
}
public abstract class DataWriter {
// neutral=p;Sinks$DataWriter;write;(String);summary;df-generated
public abstract void write(String s);
}
public class DataWriterKind1 extends DataWriter {
// sink=p;Sinks$DataWriter;true;write;(String);;Argument[0];test-sink;df-generated
// neutral=p;Sinks$DataWriterKind1;write;(String);summary;df-generated
@Override
public void write(String s) {
sink(s);
}
}
public class DataWriterKind2 extends DataWriter {
// sink=p;Sinks$DataWriter;true;write;(String);;Argument[0];test-sink2;df-generated
// neutral=p;Sinks$DataWriterKind2;write;(String);summary;df-generated
@Override
public void write(String s) {
sink2(s);
}
}
}

View File

@@ -14,6 +14,12 @@ public class Sources {
return "";
}
// Defined as a source in the model file next to the test.
// neutral=p;Sources;source2;();summary;df-generated
public String source2() {
return "";
}
// source=p;Sources;true;readUrl;(URL);;ReturnValue;remote;df-generated
// sink=p;Sources;true;readUrl;(URL);;Argument[0];request-forgery;df-generated
// neutral=p;Sources;readUrl;(URL);summary;df-generated
@@ -79,4 +85,27 @@ public class Sources {
public String manualSourceAlreadyDefined() {
return source();
}
public abstract class DataReader {
// neutral=p;Sources$DataReader;read;();summary;df-generated
public abstract String read();
}
public class DataReaderKind1 extends DataReader {
// source=p;Sources$DataReader;true;read;();;ReturnValue;test-source;df-generated
// neutral=p;Sources$DataReaderKind1;read;();summary;df-generated
@Override
public String read() {
return source();
}
}
public class DataReaderKind2 extends DataReader {
// source=p;Sources$DataReader;true;read;();;ReturnValue;test-source2;df-generated
// neutral=p;Sources$DataReaderKind2;read;();summary;df-generated
@Override
public String read() {
return source2();
}
}
}