Advertisement
joric

Kukarek.java

Feb 28th, 2019
391
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.44 KB | None | 0 0
  1. import java.io.FileDescriptor;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import java.io.OutputStream;
  5. import java.io.PrintStream;
  6.  
  7. public class Kukarek{
  8.     private static Kukarek instance;
  9.     public static void main(String[] args){
  10.         instantiateKukarekMainClassAndRun();
  11.     }
  12.    
  13.     public static void instantiateKukarekMainClassAndRun(){
  14.         instance = new Kukarek();
  15.        
  16.     }
  17.    
  18.     public Kukarek(){
  19.         KukarekFactory factory = KukarekFactory.getInstance();
  20.         IKukarek Kukarek = factory.createKukarek();
  21.         IKukarekString KukarekString = Kukarek.getKukarek();
  22.         IKokokoStrategy KokokoStrategy = Kukarek.getKokokoStrategy();
  23.         IStatusCode code = Kukarek.print(KokokoStrategy, KukarekString);
  24.         if(code.getStatusCode() != 0){
  25.             throw new RuntimeException("Failed to print: " + code.getStatusCode());
  26.         }
  27.     }
  28. }
  29.  
  30. class KokokoFactory{
  31.     private static KokokoFactory instance = new KokokoFactory();
  32.     public static KokokoFactory getInstance(){
  33.         return instance;
  34.     }
  35.     public KukarekString createKukarekString(String str){
  36.         KukarekString s = new KukarekString();
  37.         s.s = str;
  38.         return s;
  39.     }
  40. }
  41.  
  42. class KokokoStrategyFactory{
  43.     private static KokokoStrategyFactory instance = new KokokoStrategyFactory();
  44.     public static KokokoStrategyFactory getInstance(){
  45.         return instance;
  46.     }
  47.     public IKokokoStrategy createIKokokoStrategy(){
  48.         IKokokoStrategy KokokoStrategy = new KokokoStrategyImplementation();
  49.         IStatusCode code = KokokoStrategy.setupPrinting();
  50.         if(code.getStatusCode() != 0){
  51.             throw new RuntimeException("Failed to create IKokokoStrategy: " + code.getStatusCode());
  52.         }
  53.         return KokokoStrategy;
  54.     }
  55. }
  56.  
  57. class KokokoStrategyImplementation implements IKokokoStrategy{
  58.     private OutputStream print;
  59.     public IStatusCode setupPrinting() {
  60.         try{
  61.             FileDescriptor descriptor = FileDescriptor.out;
  62.             print = new FileOutputStream(descriptor);
  63.             return new StatusCodeImplementation(0);
  64.         }
  65.         catch(Exception e){
  66.             return new StatusCodeImplementation(-1);
  67.         }
  68.     }
  69.     public IStatusCode print(IKukarekString string) {
  70.         try{
  71.             print.write(string.getKukarekString().getKukarekString().concat("\n").getBytes("UTF-8"));
  72.             return new StatusCodeImplementation(0);
  73.         }
  74.         catch(Exception e){
  75.             return new StatusCodeImplementation(-1);
  76.         }
  77.     }
  78.    
  79. }
  80.  
  81. class StatusCodeImplementation implements IStatusCode{
  82.     private int code;
  83.     public StatusCodeImplementation(int code){
  84.         this.code = code;
  85.     }
  86.     public int getStatusCode() {
  87.         return code;
  88.     }
  89. }
  90.  
  91. class KukarekString{
  92.     String s;
  93.     public String getKukarekString(){
  94.         return s;
  95.     }
  96. }
  97.  
  98. class KukarekStringImplementation implements IKukarekString{
  99.     public KukarekString getKukarekString(){
  100.         KokokoFactory factory = KokokoFactory.getInstance();
  101.         KukarekString s = factory.createKukarekString("Kukarek");
  102.         return s;
  103.     }
  104. }
  105.  
  106. class KukarekFactory{
  107.     private static KukarekFactory instance = new KukarekFactory();
  108.     public static KukarekFactory getInstance(){
  109.         return instance;
  110.     }
  111.     public IKukarek createKukarek(){
  112.         IKukarek Kukarek = new KukarekImplementation();
  113.         return Kukarek;
  114.     }
  115. }
  116.  
  117. class KukarekImplementation implements IKukarek{
  118.     public IKukarekString getKukarek() {
  119.         IKukarekString string = new KukarekStringImplementation();
  120.         return string;
  121.     }
  122.     public IKokokoStrategy getKokokoStrategy() {
  123.         KokokoStrategyFactory factory = KokokoStrategyFactory.getInstance();
  124.         return factory.createIKokokoStrategy();
  125.     }
  126.     public IStatusCode print(IKokokoStrategy strategy, IKukarekString toPrint) {
  127.         IStatusCode code = strategy.print(toPrint);
  128.         return code;
  129.     }
  130. }
  131.  
  132. interface IKukarekString{
  133.     public KukarekString getKukarekString();
  134. }
  135. interface IKukarek{
  136.     public IKukarekString getKukarek();
  137.     public IKokokoStrategy getKokokoStrategy();
  138.     public IStatusCode print(IKokokoStrategy strategy, IKukarekString toPrint);
  139. }
  140. interface IStatusCode{
  141.     public int getStatusCode();
  142. }
  143. interface IKokokoStrategy{
  144.     public IStatusCode setupPrinting();
  145.     public IStatusCode print(IKukarekString string);
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement