/*
* Copyright (c) 2015 Hewlett Packard Enterprise Development Company, L.P. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.nic.graph.impl;
import org.opendaylight.nic.graph.api.Interval;
import org.opendaylight.nic.graph.api.TermLabel;
import org.opendaylight.nic.graph.api.TermType;
/**
* Base class for creating {@link TermType}s which are registered for use in
* {@link ClassifierImpl}s.
*
*/
public abstract class TermTypeBase implements TermType {
private final TermLabel label;
private final int min;
private final int max;
@Override
public int min() {
return min;
}
@Override
public int max() {
return max;
}
public TermTypeBase(TermLabel label, int min, int max) {
super();
this.label = new TermLabel(label.toString());
this.min = min;
this.max = max;
}
@Override
public TermLabel label() {
return new TermLabel(label.toString());
}
@Override
public boolean isLegal(Interval interval) {
return ((interval.start() >= min()) && (interval.end() <= max()));
}
@Override
public boolean isMax(Interval interval) {
return ((interval.start() == min()) && (interval.end() == max()));
}
@Override
public String toString() {
return "TermType { label=" + label + "}";
}
}