franta-hg@31: /** franta-hg@31: * Rozšířené atributy – program na správu rozšířených atributů souborů franta-hg@31: * Copyright © 2023 František Kučera (frantovo.cz) franta-hg@31: * franta-hg@31: * This program is free software: you can redistribute it and/or modify franta-hg@31: * it under the terms of the GNU General Public License as published by franta-hg@31: * the Free Software Foundation, either version 3 of the License. franta-hg@31: * franta-hg@31: * This program is distributed in the hope that it will be useful, franta-hg@31: * but WITHOUT ANY WARRANTY; without even the implied warranty of franta-hg@31: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the franta-hg@31: * GNU General Public License for more details. franta-hg@31: * franta-hg@31: * You should have received a copy of the GNU General Public License franta-hg@31: * along with this program. If not, see . franta-hg@31: */ franta-hg@31: package cz.frantovo.rozsireneatributy; franta-hg@31: franta-hg@31: import java.io.File; franta-hg@42: import java.util.Arrays; franta-hg@42: import java.util.HashSet; franta-hg@31: import java.util.LinkedList; franta-hg@31: import java.util.List; franta-hg@42: import java.util.Set; franta-hg@31: franta-hg@31: /** franta-hg@31: * @author Ing. František Kučera (frantovo.cz) franta-hg@31: */ franta-hg@31: public class Konfigurace { franta-hg@31: franta-hg@31: public static class DefiniceAtributu { franta-hg@31: franta-hg@31: private String název; franta-hg@31: private String popis; franta-hg@31: private final List hodnoty = new LinkedList<>(); franta-hg@31: franta-hg@31: public DefiniceAtributu(String název, String popis) { franta-hg@31: this.název = název; franta-hg@31: this.popis = popis; franta-hg@31: } franta-hg@31: franta-hg@31: public String getNázev() { franta-hg@31: return název; franta-hg@31: } franta-hg@31: franta-hg@31: public void setNázev(String název) { franta-hg@31: this.název = název; franta-hg@31: } franta-hg@31: franta-hg@31: public String getPopis() { franta-hg@31: return popis; franta-hg@31: } franta-hg@31: franta-hg@31: public void setPopis(String popis) { franta-hg@31: this.popis = popis; franta-hg@31: } franta-hg@31: franta-hg@31: public List getHodnoty() { franta-hg@31: return hodnoty; franta-hg@31: } franta-hg@31: franta-hg@31: public void addHodnota(DefiniceHodnoty hodnota) { franta-hg@31: this.hodnoty.add(hodnota); franta-hg@31: } franta-hg@31: franta-hg@31: } franta-hg@31: franta-hg@31: public static class DefiniceHodnoty { franta-hg@31: franta-hg@31: private String název; franta-hg@31: private String popis; franta-hg@31: franta-hg@31: public DefiniceHodnoty(String název, String popis) { franta-hg@31: this.název = název; franta-hg@31: this.popis = popis; franta-hg@31: } franta-hg@31: franta-hg@31: public String getNázev() { franta-hg@31: return název; franta-hg@31: } franta-hg@31: franta-hg@31: public void setNázev(String název) { franta-hg@31: this.název = název; franta-hg@31: } franta-hg@31: franta-hg@31: public String getPopis() { franta-hg@31: return popis; franta-hg@31: } franta-hg@31: franta-hg@31: public void setPopis(String popis) { franta-hg@31: this.popis = popis; franta-hg@31: } franta-hg@31: } franta-hg@31: franta-hg@42: public enum RežimZamykání { franta-hg@42: VYPNUTÉ("vypnuté", "disabled"), franta-hg@42: VOLITELNÉ("volitelné", "optional"), franta-hg@42: POVINNÉ("povinné", "mandatory"); franta-hg@42: franta-hg@42: private final Set hodnoty = new HashSet<>(); franta-hg@42: franta-hg@42: private RežimZamykání(String... hodnoty) { franta-hg@42: this.hodnoty.addAll(Arrays.asList(hodnoty)); franta-hg@42: } franta-hg@42: franta-hg@42: public boolean odpovídá(String hodnota) { franta-hg@42: return hodnoty.contains(hodnota); franta-hg@42: } franta-hg@42: franta-hg@42: public static RežimZamykání najdiRežim(String hodnota) { franta-hg@42: for (RežimZamykání režim : values()) { franta-hg@42: if (režim.odpovídá(hodnota)) return režim; franta-hg@42: } franta-hg@42: return null; franta-hg@42: } franta-hg@42: } franta-hg@42: franta-hg@31: private File soubor; franta-hg@31: franta-hg@42: private RežimZamykání režimZamykání = RežimZamykání.VOLITELNÉ; franta-hg@31: franta-hg@31: private final List atributy = new LinkedList<>(); franta-hg@31: franta-hg@31: public File getSoubor() { franta-hg@31: return soubor; franta-hg@31: } franta-hg@31: franta-hg@31: public void setSoubor(File soubor) { franta-hg@31: this.soubor = soubor; franta-hg@31: } franta-hg@31: franta-hg@42: public RežimZamykání getRežimZamykání() { franta-hg@42: return režimZamykání; franta-hg@31: } franta-hg@31: franta-hg@42: public void setRežimZamykání(RežimZamykání režimZamykání) { franta-hg@42: this.režimZamykání = režimZamykání; franta-hg@31: } franta-hg@31: franta-hg@31: public List getAtributy() { franta-hg@31: return atributy; franta-hg@31: } franta-hg@31: franta-hg@31: public void addAtribut(DefiniceAtributu atribut) { franta-hg@31: this.atributy.add(atribut); franta-hg@31: } franta-hg@31: franta-hg@31: }