/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package br.uff.ic.oceano.core.tools.metrics.expression; import br.uff.ic.oceano.core.model.Metric; import br.uff.ic.oceano.core.model.transiente.Language; /** * * @author wallace */ public abstract class BinaryExpression extends MetricExpression { private MetricExpression left; private MetricExpression right; protected BinaryExpression(MetricExpression left, MetricExpression right) { this.left = left; this.right = right; } public MetricExpression getLeft() { return left; } public MetricExpression getRight() { return right; } void setLeft(MetricExpression left) { this.left = left; } void setRight(MetricExpression right) { this.right = right; } @Override public boolean isLanguageSupported(Language language) { return left.isLanguageSupported(language) && right.isLanguageSupported(language); } public int getExtratcsFrom() { int leftExtratcsFrom, rightExtratcsFrom; leftExtratcsFrom = left.getExtratcsFrom(); if (leftExtratcsFrom == Metric.EXTRACTS_FROM_FILE) { return leftExtratcsFrom; } rightExtratcsFrom = right.getExtratcsFrom(); if (leftExtratcsFrom < rightExtratcsFrom) { return leftExtratcsFrom; } return rightExtratcsFrom; } }