Frames | No Frames |
1: /* MaskableEnvelopeEntry.java -- 2: Copyright (C) 2003, 2006 Free Software Foundation, Inc. 3: 4: This file is a part of GNU Classpath. 5: 6: GNU Classpath is free software; you can redistribute it and/or modify 7: it under the terms of the GNU General Public License as published by 8: the Free Software Foundation; either version 2 of the License, or (at 9: your option) any later version. 10: 11: GNU Classpath is distributed in the hope that it will be useful, but 12: WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14: General Public License for more details. 15: 16: You should have received a copy of the GNU General Public License 17: along with GNU Classpath; if not, write to the Free Software 18: Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 19: USA 20: 21: Linking this library statically or dynamically with other modules is 22: making a combined work based on this library. Thus, the terms and 23: conditions of the GNU General Public License cover the whole 24: combination. 25: 26: As a special exception, the copyright holders of this library give you 27: permission to link this library with independent modules to produce an 28: executable, regardless of the license terms of these independent 29: modules, and to copy and distribute the resulting executable under 30: terms of your choice, provided that you also meet, for each linked 31: independent module, the terms and conditions of the license of that 32: module. An independent module is a module which is not derived from 33: or based on this library. If you modify this library, you may extend 34: this exception to your version of the library, but you are not 35: obligated to do so. If you do not wish to do so, delete this 36: exception statement from your version. */ 37: 38: 39: package gnu.javax.crypto.keyring; 40: 41: import java.util.ArrayList; 42: import java.util.List; 43: 44: /** 45: * An envelope entry that can be "masked" -- placed in a state where the 46: * envelope's contents cannot be accessed, due to the envelope not being fully 47: * decoded, for example. 48: */ 49: public abstract class MaskableEnvelopeEntry 50: extends EnvelopeEntry 51: { 52: /** The masked state. */ 53: protected boolean masked; 54: 55: public MaskableEnvelopeEntry(int type, Properties properties) 56: { 57: super(type, properties); 58: } 59: 60: protected MaskableEnvelopeEntry(int type) 61: { 62: super(type); 63: } 64: 65: /** 66: * Sets the masked state to the specified value. 67: * 68: * @param masked The new masked state. 69: */ 70: protected final void setMasked(boolean masked) 71: { 72: this.masked = masked; 73: } 74: 75: /** 76: * Gets the masked state of this object. Certain operations on this object 77: * will fail if it is masked. 78: * 79: * @return The current masked state. 80: */ 81: public boolean isMasked() 82: { 83: return masked; 84: } 85: 86: public void add(Entry entry) 87: { 88: if (isMasked()) 89: throw new IllegalStateException("masked envelope"); 90: super.add(entry); 91: } 92: 93: public boolean containsEntry(Entry entry) 94: { 95: if (isMasked()) 96: throw new IllegalStateException("masked envelope"); 97: return super.containsEntry(entry); 98: } 99: 100: public List getEntries() 101: { 102: if (isMasked()) 103: throw new IllegalStateException("masked envelope"); 104: return new ArrayList(entries); 105: } 106: 107: public List get(String alias) 108: { 109: if (isMasked()) 110: throw new IllegalStateException("masked envelope"); 111: return super.get(alias); 112: } 113: 114: public boolean remove(Entry entry) 115: { 116: if (isMasked()) 117: throw new IllegalStateException("masked envelope"); 118: return super.remove(entry); 119: } 120: 121: public boolean remove(String alias) 122: { 123: if (isMasked()) 124: throw new IllegalStateException("masked envelope"); 125: return super.remove(alias); 126: } 127: 128: public String toString() 129: { 130: return new StringBuilder("MaskableEnvelope{") 131: .append(super.toString()) 132: .append(", masked=").append(masked) 133: .append("}").toString(); 134: } 135: }