diff --git a/src/main/java/cpw/mods/modlauncher/api/ITransformer.java b/src/main/java/cpw/mods/modlauncher/api/ITransformer.java index cb4b90a..aae30b0 100644 --- a/src/main/java/cpw/mods/modlauncher/api/ITransformer.java +++ b/src/main/java/cpw/mods/modlauncher/api/ITransformer.java @@ -1,4 +1,26 @@ package cpw.mods.modlauncher.api; +import java.util.Set; + public interface ITransformer { + String[] DEFAULT_LABEL = { "default" }; + + T transform(T input, ITransformerVotingContext context); + + TransformerVoteResult castVote(ITransformerVotingContext context); + + Set targets(); + + default String[] labels() { + return DEFAULT_LABEL; + } + + enum TargetType { + CLASS, + METHOD, + FIELD + } + + final class Target { + } } diff --git a/src/main/java/cpw/mods/modlauncher/api/ITransformerVotingContext.java b/src/main/java/cpw/mods/modlauncher/api/ITransformerVotingContext.java new file mode 100644 index 0000000..9c8acfd --- /dev/null +++ b/src/main/java/cpw/mods/modlauncher/api/ITransformerVotingContext.java @@ -0,0 +1,4 @@ +package cpw.mods.modlauncher.api; + +public interface ITransformerVotingContext { +} \ No newline at end of file diff --git a/src/main/java/cpw/mods/modlauncher/api/TransformerVoteResult.java b/src/main/java/cpw/mods/modlauncher/api/TransformerVoteResult.java new file mode 100644 index 0000000..df90c9f --- /dev/null +++ b/src/main/java/cpw/mods/modlauncher/api/TransformerVoteResult.java @@ -0,0 +1,8 @@ +package cpw.mods.modlauncher.api; + +public enum TransformerVoteResult { + YES, + DEFER, + NO, + REJECT +}