2 * Rozšířené atributy – program na správu rozšířených atributů souborů
3 * Copyright © 2023 František Kučera (frantovo.cz)
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 package cz.frantovo.rozsireneatributy;
20 import java.util.Arrays;
21 import java.util.HashSet;
22 import java.util.LinkedList;
23 import java.util.List;
27 * @author Ing. František Kučera (frantovo.cz)
29 public class Konfigurace {
31 public static class DefiniceAtributu {
35 private final List<DefiniceHodnoty> hodnoty = new LinkedList<>();
37 public DefiniceAtributu(String název, String popis) {
42 public String getNázev() {
46 public void setNázev(String název) {
50 public String getPopis() {
54 public void setPopis(String popis) {
58 public List<DefiniceHodnoty> getHodnoty() {
62 public void addHodnota(DefiniceHodnoty hodnota) {
63 this.hodnoty.add(hodnota);
68 public static class DefiniceHodnoty {
73 public DefiniceHodnoty(String název, String popis) {
78 public String getNázev() {
82 public void setNázev(String název) {
86 public String getPopis() {
90 public void setPopis(String popis) {
95 public enum RežimZamykání {
96 VYPNUTÉ("vypnuté", "disabled"),
97 VOLITELNÉ("volitelné", "optional"),
98 POVINNÉ("povinné", "mandatory");
100 private final Set<String> hodnoty = new HashSet<>();
102 private RežimZamykání(String... hodnoty) {
103 this.hodnoty.addAll(Arrays.asList(hodnoty));
106 public boolean odpovídá(String hodnota) {
107 return hodnoty.contains(hodnota);
110 public static RežimZamykání najdiRežim(String hodnota) {
111 for (RežimZamykání režim : values()) {
112 if (režim.odpovídá(hodnota)) return režim;
120 private RežimZamykání režimZamykání = RežimZamykání.VOLITELNÉ;
122 private final List<DefiniceAtributu> atributy = new LinkedList<>();
124 public File getSoubor() {
128 public void setSoubor(File soubor) {
129 this.soubor = soubor;
132 public RežimZamykání getRežimZamykání() {
133 return režimZamykání;
136 public void setRežimZamykání(RežimZamykání režimZamykání) {
137 this.režimZamykání = režimZamykání;
140 public List<DefiniceAtributu> getAtributy() {
144 public void addAtribut(DefiniceAtributu atribut) {
145 this.atributy.add(atribut);