X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodeladapter%2FCoreModelParameters.java;h=181f6effccbabfdcbda6ac6adc5350551c895f58;hb=7908fec28b61e5911bf6523a3c10cd3a31dc95e6;hp=db3b5ac617214084ef47027448781a03d808788d;hpb=7d05144c25daa53e60fc9ed9fd503546a86567f8;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/CoreModelParameters.java b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/CoreModelParameters.java index db3b5ac6..181f6eff 100644 --- a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/CoreModelParameters.java +++ b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/CoreModelParameters.java @@ -2,6 +2,60 @@ package net.mograsim.logic.model.modeladapter; public class CoreModelParameters { - public int wireTravelTime; - public int gateProcessTime; + public final int wireTravelTime; + public final int gateProcessTime; + public final int hardcodedComponentProcessTime; + + public CoreModelParameters(int wireTravelTime, int gateProcessTime, int hardcodedComponentProcessTime) + { + this.wireTravelTime = wireTravelTime; + this.gateProcessTime = gateProcessTime; + this.hardcodedComponentProcessTime = hardcodedComponentProcessTime; + } + + private CoreModelParameters(CoreModelParametersBuilder builder) + { + this.wireTravelTime = builder.wireTravelTime; + this.gateProcessTime = builder.gateProcessTime; + this.hardcodedComponentProcessTime = builder.hardcodedComponentProcessTime; + } + + public static CoreModelParametersBuilder builder() + { + return new CoreModelParametersBuilder(); + } + + public static class CoreModelParametersBuilder + { + public int wireTravelTime; + public int gateProcessTime; + public int hardcodedComponentProcessTime; + + private CoreModelParametersBuilder() + { + } + + public CoreModelParametersBuilder wireTravelTime(int wireTravelTime) + { + this.wireTravelTime = wireTravelTime; + return this; + } + + public CoreModelParametersBuilder gateProcessTime(int gateProcessTime) + { + this.gateProcessTime = gateProcessTime; + return this; + } + + public CoreModelParametersBuilder hardcodedComponentProcessTime(int hardcodedComponentProcessTime) + { + this.hardcodedComponentProcessTime = hardcodedComponentProcessTime; + return this; + } + + public CoreModelParameters build() + { + return new CoreModelParameters(this); + } + } } \ No newline at end of file