/* * #%L * OME library for reading the JPEG XR file format. * %% * Copyright (C) 2014 - 2015 Open Microscopy Environment: * - Board of Regents of the University of Wisconsin-Madison * - Glencoe Software, Inc. * - University of Dundee * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-2.0.html>. * #L% */ package ome.jxr.image; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Enumeration of available frequency band counts. Naming of entries follows * Rec.ITU-T T.832 (01/2012) - table 29. * * <dl> * * @author Blazej Pindelski bpindelski at dundee.ac.uk */ public enum FrequencyBand { ALL(4, 0), NOFLEXBITS(3, 1), NOHIGHPASS(2, 2), DCONLY(1, 3), RESERVED(0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); private List<Integer> ids = new ArrayList<Integer>(); private int numberOfBands; private FrequencyBand(int numberOfBands, Integer... ids) { this.numberOfBands = numberOfBands; this.ids.addAll(Arrays.asList(ids)); } public List<Integer> getId() { return ids; } public int getNumberOfBands() { return numberOfBands; } public static FrequencyBand findById(int id) { for (FrequencyBand band : FrequencyBand.values()) { if (band.getId().contains(id)) { return band; } } throw new IllegalArgumentException("Unspecified frequency band id: " + id); } }