Class PermissionProgrammer
- java.lang.Object
-
- jmri.implementation.PermissionProgrammer
-
- All Implemented Interfaces:
Disposable
,Programmer
- Direct Known Subclasses:
PermissionAddressedProgrammer
public class PermissionProgrammer extends java.lang.Object implements Programmer
A programmer which supports permissions.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jmri.Programmer
Programmer.Configurator, Programmer.WriteConfirmMode
-
-
Field Summary
Fields Modifier and Type Field Description protected Programmer
_programmer
-
Constructor Summary
Constructors Constructor Description PermissionProgrammer(Programmer programmer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addPropertyChangeListener(java.beans.PropertyChangeListener p)
void
confirmCV(java.lang.String CV, int val, ProgListener p)
Confirm the value of a CV using the specified programming mode.java.lang.String
decodeErrorCode(int i)
boolean
getCanRead()
Checks the general read capability, regardless of modeboolean
getCanRead(java.lang.String addr)
Checks the general read capability, regardless of mode, for a specific addressboolean
getCanWrite()
Checks the general write capability, regardless of modeboolean
getCanWrite(java.lang.String addr)
Checks the general write capability, regardless of mode, for a specific addressProgrammer.Configurator
getConfigurator()
Get the configurator of this programmer.ProgrammingMode
getMode()
Get the current programming modeprotected Permission
getPermission()
java.util.List<ProgrammingMode>
getSupportedModes()
Get the list ofProgrammingMode
supported by this Programmer.Programmer.WriteConfirmMode
getWriteConfirmMode(java.lang.String addr)
Learn about whether the programmer does any kind of verification of write operationsvoid
readCV(java.lang.String CV, ProgListener p)
Perform a CV read in the system-specific manner, and using the specified programming mode.void
removePropertyChangeListener(java.beans.PropertyChangeListener p)
void
setMode(ProgrammingMode p)
Set the programmer to a particular mode.protected boolean
throttleUserRequest()
void
writeCV(java.lang.String CV, int val, ProgListener p)
Perform a CV write in the system-specific manner, and using the specified programming mode.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface jmri.Programmer
dispose, notifyProgListenerEnd, readCV
-
-
-
-
Field Detail
-
_programmer
protected final Programmer _programmer
-
-
Constructor Detail
-
PermissionProgrammer
public PermissionProgrammer(Programmer programmer)
-
-
Method Detail
-
throttleUserRequest
protected boolean throttleUserRequest()
-
getPermission
protected Permission getPermission()
-
writeCV
public void writeCV(java.lang.String CV, int val, ProgListener p) throws ProgrammerException
Perform a CV write in the system-specific manner, and using the specified programming mode.Handles a general address space through a String address. Each programmer defines the acceptable formats.
Note that this returns before the write is complete; you have to provide a ProgListener to hear about completion. For simplicity, expect the return to be on the GUI thread.
Exceptions will only be thrown at the start, not during the actual programming sequence. A typical exception would be due to an invalid mode (though that should be prevented earlier)
- Specified by:
writeCV
in interfaceProgrammer
- Parameters:
CV
- the CV to writeval
- the value to writep
- the listener that will be notified of the write- Throws:
ProgrammerException
- if unable to communicate
-
readCV
public void readCV(java.lang.String CV, ProgListener p) throws ProgrammerException
Perform a CV read in the system-specific manner, and using the specified programming mode.Handles a general address space through a String address. Each programmer defines the acceptable formats.
Note that this returns before the write is complete; you have to provide a ProgListener to hear about completion. For simplicity, expect the return to be on the GUI thread.
Exceptions will only be thrown at the start, not during the actual programming sequence. A typical exception would be due to an invalid mode (though that should be prevented earlier)
- Specified by:
readCV
in interfaceProgrammer
- Parameters:
CV
- the CV to readp
- the listener that will be notified of the read- Throws:
ProgrammerException
- if unable to communicate
-
confirmCV
public void confirmCV(java.lang.String CV, int val, ProgListener p) throws ProgrammerException
Confirm the value of a CV using the specified programming mode. On some systems, this is faster than a read.Handles a general address space through a String address. Each programmer defines the acceptable formats.
Note that this returns before the write is complete; you have to provide a ProgListener to hear about completion. For simplicity, expect the return to be on the GUI thread.
Exceptions will only be thrown at the start, not during the actual programming sequence. A typical exception would be due to an invalid mode (though that should be prevented earlier)
- Specified by:
confirmCV
in interfaceProgrammer
- Parameters:
CV
- the CV to confirmval
- the value to confirmp
- the listener that will be notified of the confirmation- Throws:
ProgrammerException
- if unable to communicate
-
getSupportedModes
public java.util.List<ProgrammingMode> getSupportedModes()
Get the list ofProgrammingMode
supported by this Programmer. If the order is significant, earlier modes are better.- Specified by:
getSupportedModes
in interfaceProgrammer
- Returns:
- the list of supported modes or an empty list
-
setMode
public void setMode(ProgrammingMode p)
Set the programmer to a particular mode.Mode is a bound parameter; mode changes fire listeners.
Only modes returned by
Programmer.getSupportedModes()
are supported. If an invalid mode is requested, the active mode is unchanged.- Specified by:
setMode
in interfaceProgrammer
- Parameters:
p
- a valid node returned byProgrammer.getSupportedModes()
or null; null is ignored ifProgrammer.getSupportedModes()
is not empty
-
getMode
public ProgrammingMode getMode()
Get the current programming mode- Specified by:
getMode
in interfaceProgrammer
- Returns:
- the current mode or null if none is defined and no default mode is defined
-
getCanRead
public boolean getCanRead()
Checks the general read capability, regardless of mode- Specified by:
getCanRead
in interfaceProgrammer
- Returns:
- true if the programmer is capable of reading; false otherwise
-
getCanRead
public boolean getCanRead(java.lang.String addr)
Checks the general read capability, regardless of mode, for a specific address- Specified by:
getCanRead
in interfaceProgrammer
- Parameters:
addr
- the address to read- Returns:
- true if the address can be read; false otherwise
-
getCanWrite
public boolean getCanWrite()
Checks the general write capability, regardless of mode- Specified by:
getCanWrite
in interfaceProgrammer
- Returns:
- true if the programmer is capable of writing; false otherwise
-
getCanWrite
public boolean getCanWrite(java.lang.String addr)
Checks the general write capability, regardless of mode, for a specific address- Specified by:
getCanWrite
in interfaceProgrammer
- Parameters:
addr
- the address to write to- Returns:
- true if the address can be written to; false otherwise
-
getWriteConfirmMode
public Programmer.WriteConfirmMode getWriteConfirmMode(java.lang.String addr)
Learn about whether the programmer does any kind of verification of write operations- Specified by:
getWriteConfirmMode
in interfaceProgrammer
- Parameters:
addr
- A CV address to check (in case this varies with CV range) or null for any- Returns:
- The confirmation behavior that can be counted on (might be better in some cases)
-
addPropertyChangeListener
public void addPropertyChangeListener(java.beans.PropertyChangeListener p)
- Specified by:
addPropertyChangeListener
in interfaceProgrammer
-
removePropertyChangeListener
public void removePropertyChangeListener(java.beans.PropertyChangeListener p)
- Specified by:
removePropertyChangeListener
in interfaceProgrammer
-
decodeErrorCode
public java.lang.String decodeErrorCode(int i)
- Specified by:
decodeErrorCode
in interfaceProgrammer
-
getConfigurator
public Programmer.Configurator getConfigurator()
Get the configurator of this programmer.- Specified by:
getConfigurator
in interfaceProgrammer
- Returns:
- the configurator if it exists, otherwise null
-
-