Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.FileDescriptor;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.io.PrintStream;
- public class Kukarek{
- private static Kukarek instance;
- public static void main(String[] args){
- instantiateKukarekMainClassAndRun();
- }
- public static void instantiateKukarekMainClassAndRun(){
- instance = new Kukarek();
- }
- public Kukarek(){
- KukarekFactory factory = KukarekFactory.getInstance();
- IKukarek Kukarek = factory.createKukarek();
- IKukarekString KukarekString = Kukarek.getKukarek();
- IKokokoStrategy KokokoStrategy = Kukarek.getKokokoStrategy();
- IStatusCode code = Kukarek.print(KokokoStrategy, KukarekString);
- if(code.getStatusCode() != 0){
- throw new RuntimeException("Failed to print: " + code.getStatusCode());
- }
- }
- }
- class KokokoFactory{
- private static KokokoFactory instance = new KokokoFactory();
- public static KokokoFactory getInstance(){
- return instance;
- }
- public KukarekString createKukarekString(String str){
- KukarekString s = new KukarekString();
- s.s = str;
- return s;
- }
- }
- class KokokoStrategyFactory{
- private static KokokoStrategyFactory instance = new KokokoStrategyFactory();
- public static KokokoStrategyFactory getInstance(){
- return instance;
- }
- public IKokokoStrategy createIKokokoStrategy(){
- IKokokoStrategy KokokoStrategy = new KokokoStrategyImplementation();
- IStatusCode code = KokokoStrategy.setupPrinting();
- if(code.getStatusCode() != 0){
- throw new RuntimeException("Failed to create IKokokoStrategy: " + code.getStatusCode());
- }
- return KokokoStrategy;
- }
- }
- class KokokoStrategyImplementation implements IKokokoStrategy{
- private OutputStream print;
- public IStatusCode setupPrinting() {
- try{
- FileDescriptor descriptor = FileDescriptor.out;
- print = new FileOutputStream(descriptor);
- return new StatusCodeImplementation(0);
- }
- catch(Exception e){
- return new StatusCodeImplementation(-1);
- }
- }
- public IStatusCode print(IKukarekString string) {
- try{
- print.write(string.getKukarekString().getKukarekString().concat("\n").getBytes("UTF-8"));
- return new StatusCodeImplementation(0);
- }
- catch(Exception e){
- return new StatusCodeImplementation(-1);
- }
- }
- }
- class StatusCodeImplementation implements IStatusCode{
- private int code;
- public StatusCodeImplementation(int code){
- this.code = code;
- }
- public int getStatusCode() {
- return code;
- }
- }
- class KukarekString{
- String s;
- public String getKukarekString(){
- return s;
- }
- }
- class KukarekStringImplementation implements IKukarekString{
- public KukarekString getKukarekString(){
- KokokoFactory factory = KokokoFactory.getInstance();
- KukarekString s = factory.createKukarekString("Kukarek");
- return s;
- }
- }
- class KukarekFactory{
- private static KukarekFactory instance = new KukarekFactory();
- public static KukarekFactory getInstance(){
- return instance;
- }
- public IKukarek createKukarek(){
- IKukarek Kukarek = new KukarekImplementation();
- return Kukarek;
- }
- }
- class KukarekImplementation implements IKukarek{
- public IKukarekString getKukarek() {
- IKukarekString string = new KukarekStringImplementation();
- return string;
- }
- public IKokokoStrategy getKokokoStrategy() {
- KokokoStrategyFactory factory = KokokoStrategyFactory.getInstance();
- return factory.createIKokokoStrategy();
- }
- public IStatusCode print(IKokokoStrategy strategy, IKukarekString toPrint) {
- IStatusCode code = strategy.print(toPrint);
- return code;
- }
- }
- interface IKukarekString{
- public KukarekString getKukarekString();
- }
- interface IKukarek{
- public IKukarekString getKukarek();
- public IKokokoStrategy getKokokoStrategy();
- public IStatusCode print(IKokokoStrategy strategy, IKukarekString toPrint);
- }
- interface IStatusCode{
- public int getStatusCode();
- }
- interface IKokokoStrategy{
- public IStatusCode setupPrinting();
- public IStatusCode print(IKukarekString string);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement