/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Adpator;

import java.util.Scanner;

interface NumArthematic{
    public  void addnum();
    public void subNum();
}



class Numbers implements NumArthematic{
      Scanner input=new Scanner(System.in);
      int x=0,y=0;
      
      public  void addnum(){
        System.out.println("Enter the 1st real muber: ");
        x=input.nextInt();
        System.out.println("Enter the real 2nd muber: ");
        y=input.nextInt();
        System.out.println("the Sum is ="+(x+y));
  }
      public void subNum(){
          System.out.println("Difference is ="+(x-y));
      }
}
 class ComplexAdapter implements NumArthematic{
   Complex comp = null;
   public ComplexAdapter(Complex comp){
       this.comp = comp;
    }

      public  void addnum(){
        comp.addComplex();
  }
      public void subNum(){
          //comp.
      }
    
}
class UnioinAdapter implements NumArthematic{
   UnionIntersectionClass un = null;
   int a[],b[];
   public UnioinAdapter(UnionIntersectionClass comp,int a[], int b[]){
       this.un = comp;
       this.a=a;
       this.b=b;
    }

      public  void addnum(){
       // un.getIntersection(a, b);
  }
      public void subNum(){
          //un.getUnion(a, b);
      }
    
}
 
 class Complex {
        Scanner input=new Scanner(System.in);
        int realNum1,imgNum1, realNum2,imgNum2;
        public Complex(){
            //addComplex();
        }
     public void addComplex(){
        System.out.println("Enter the real and imagnery number of the 1st comlex number : ");
        realNum1=input.nextInt();
        imgNum1=input.nextInt();
        System.out.println("Enter the real number and imagnery of the 2nd comlex number : ");
        realNum2=input.nextInt();
        imgNum2=input.nextInt();
        System.out.println("Sum of complex number="+(realNum1+realNum2)+"+ "+(imgNum1+imgNum2)+"i");

     }
        
}
 
 
 
 class AdapterTest {
    public static void main(String []a){

        Scanner input=new Scanner(System.in);
        NumArthematic numInt=null;
        System.out.println("Enter c for complex and n for normal addition or u for union and i for intersection: ");
        String check=input.nextLine();

        if(check.equals("n")){
            numInt = new Numbers();
        }
       if(check.equals("c")){

            numInt=new ComplexAdapter(new Complex());
        }
        if(check.equals("i")){
            
            System.out.println("Enter number of elemnets if first set: ");
            int n=input.nextInt();
            System.out.println("Enter elements of first set, only int: ");
            int set1[]=new int[n];
            
            for (int i=0;i<n;i++){
                set1[i]=input.nextInt();
            }
            System.out.println("Enter number of elemnets if second set: ");
            int m=input.nextInt();
            System.out.println("Enter elements of second set, only int: ");
            int set2[]=new int[m];
            
            for (int i=0;i<m;i++){
                set2[i]=input.nextInt();
            }
            numInt=new UnioinAdapter(new UnionIntersectionClass(),set1,set2);
        }
        numInt.addnum();
        numInt.subNum();
    }
}

 
 
 
 class UnionIntersectionClass {
     
     
     
     
     
     
/*     
        public void getUnion(int a[], int b[]){
            int len=a.length>b.length?a.length:b.length;
            int lenCommon=a.length>b.length?b.length:a.length;
            int common[]=new int[lenCommon];
            for(int i=0;i<len;i++){
                if(a[i]==b[i]){
                    common[i]=a[i];
                }
            }
        }
        public void getIntersection(int a[], int b[]){
            int lenCommon=a.length>b.length?b.length:a.length;
            int common[]=new int[lenCommon];
            for(int i=0;i<lenCommon;i++){
                if(a[i]==b[i]){
                    common[i]=a[i];
                     
                }
            System.out.print(common[i]+", ");
            }
            System.out.println("Coll"); 
        }
 */
}
