001package com.hammurapi.extract;
002
003import java.util.concurrent.TimeUnit;
004
005
006public class Subtract<T, C> extends ArithmeticExtractor<T, Number, C> {
007
008        public Subtract(double initialCost, TimeUnit costUnit, Extractor<T, Number, C> leftExtractor, Extractor<T, Number, C> rightExtractor) {
009                super(initialCost, costUnit, leftExtractor, rightExtractor, true);
010        }
011        
012        @Override
013        protected Object doOp(int n1, int n2) {
014                return n1-n2;
015        }
016
017        @Override
018        protected Object doOp(long n1, long n2) {
019                return n1-n2;
020        }
021
022        @Override
023        protected Object doOp(float n1, float n2) {
024                return n1-n2;
025        }
026
027        @Override
028        protected Object doOp(double n1, double n2) {
029                return n1-n2;
030        }
031        
032        @Override
033        protected Extractor<T, Number, C> newInstance(Extractor<T, Number, C> leftExtractor, Extractor<T, Number, C> rightExtractor) {
034                return new Subtract<T,C>(initialCost, costUnit, leftExtractor, rightExtractor);
035        }
036}