Skip to content

Commit

Permalink
Fix equalsIgnoreCase issue (openhab#11141)
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Lobstein <michael.lobstein@gmail.com>
  • Loading branch information
mlobstein authored Aug 24, 2021
1 parent 8afe3c9 commit 4f4f4bd
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 62 deletions.
2 changes: 1 addition & 1 deletion bundles/org.openhab.binding.epsonprojector/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Some notes:

* The binding should work on all Epson projectors that support the ESC/VP21 protocol, however not all binding channels will be useable on all projectors.
* The _source_ channel includes a dropdown with the most common source inputs.
* If your projector has a source input that is not in the dropdown, the two digit hex code to access that input will be displayed by the _source_ channel when that input is selected by the remote control.
* If your projector has a source input that is not in the dropdown, the two character hex code to access that input will be displayed by the _source_ channel when that input is selected by the remote control.
* By using the sitemap mapping or a rule to send the input's code back to the _source_ channel, any source on the projector can be accessed by the binding.
* The following channels _aspectratio_, _colormode_, _luminance_, _gamma_ and _background_ are pre-populated with a full set of options but not every option will be useable on all projectors.
* If your projector has an option in one of the above mentioned channels that is not recognized by the binding, the channel will display 'UNKNOWN' if that un-recognized option is selected by the remote control.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@
*/
package org.openhab.binding.epsonprojector.internal;

import java.io.InvalidClassException;

import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.core.items.Item;
import org.openhab.core.library.items.DimmerItem;
Expand All @@ -29,34 +27,34 @@
*/
@NonNullByDefault
public enum EpsonProjectorCommandType {
POWER("Power", SwitchItem.class),
POWER_STATE("PowerState", StringItem.class),
LAMP_TIME("LampTime", NumberItem.class),
KEY_CODE("KeyCode", StringItem.class),
VKEYSTONE("VerticalKeystone", NumberItem.class),
HKEYSTONE("HorizontalKeystone", NumberItem.class),
AKEYSTONE("AutoKeystone", SwitchItem.class),
FREEZE("Freeze", SwitchItem.class),
ASPECT_RATIO("AspectRatio", StringItem.class),
LUMINANCE("Luminance", StringItem.class),
SOURCE("Source", StringItem.class),
BRIGHTNESS("Brightness", NumberItem.class),
CONTRAST("Contrast", NumberItem.class),
DENSITY("Density", NumberItem.class),
TINT("Tint", NumberItem.class),
COLOR_TEMP("ColorTemperature", NumberItem.class),
FLESH_TEMP("FleshTemperature", NumberItem.class),
COLOR_MODE("ColorMode", StringItem.class),
HPOSITION("HorizontalPosition", NumberItem.class),
VPOSITION("VerticalPosition", NumberItem.class),
GAMMA("Gamma", StringItem.class),
VOLUME("Volume", DimmerItem.class),
MUTE("Mute", SwitchItem.class),
HREVERSE("HorizontalReverse", SwitchItem.class),
VREVERSE("VerticalReverse", SwitchItem.class),
BACKGROUND("Background", StringItem.class),
ERR_CODE("ErrCode", NumberItem.class),
ERR_MESSAGE("ErrMessage", StringItem.class),;
POWER("power", SwitchItem.class),
POWER_STATE("powerstate", StringItem.class),
LAMP_TIME("lamptime", NumberItem.class),
KEY_CODE("keycode", StringItem.class),
VKEYSTONE("verticalkeystone", NumberItem.class),
HKEYSTONE("horizontalkeystone", NumberItem.class),
AKEYSTONE("autokeystone", SwitchItem.class),
FREEZE("freeze", SwitchItem.class),
ASPECT_RATIO("aspectratio", StringItem.class),
LUMINANCE("luminance", StringItem.class),
SOURCE("source", StringItem.class),
BRIGHTNESS("brightness", NumberItem.class),
CONTRAST("contrast", NumberItem.class),
DENSITY("density", NumberItem.class),
TINT("tint", NumberItem.class),
COLOR_TEMP("colortemperature", NumberItem.class),
FLESH_TEMP("fleshtemperature", NumberItem.class),
COLOR_MODE("colormode", StringItem.class),
HPOSITION("horizontalposition", NumberItem.class),
VPOSITION("verticalposition", NumberItem.class),
GAMMA("gamma", StringItem.class),
VOLUME("volume", DimmerItem.class),
MUTE("mute", SwitchItem.class),
HREVERSE("horizontalreverse", SwitchItem.class),
VREVERSE("verticalreverse", SwitchItem.class),
BACKGROUND("background", StringItem.class),
ERR_CODE("errcode", NumberItem.class),
ERR_MESSAGE("errmessage", StringItem.class),;

private final String text;
private Class<? extends Item> itemClass;
Expand All @@ -75,48 +73,22 @@ public Class<? extends Item> getItemClass() {
return itemClass;
}

/**
* Procedure to validate command type string.
*
* @param commandTypeText
* command string e.g. RawData, Command, Brightness
* @return true if item is valid.
* @throws IllegalArgumentException
* Not valid command type.
* @throws InvalidClassException
* Not valid class for command type.
*/
public static boolean validateBinding(String commandTypeText, Class<? extends Item> itemClass)
throws IllegalArgumentException, InvalidClassException {
for (EpsonProjectorCommandType c : EpsonProjectorCommandType.values()) {
if (c.text.equalsIgnoreCase(commandTypeText)) {
if (c.getItemClass().equals(itemClass)) {
return true;
} else {
throw new InvalidClassException("Not valid class for command type");
}
}
}

throw new IllegalArgumentException("Not valid command type");
}

/**
* Procedure to convert command type string to command type class.
*
* @param commandTypeText
* command string e.g. RawData, Command, Brightness
* @return corresponding command type.
* @throws InvalidClassException
* Not valid class for command type.
* @throws IllegalArgumentException
* No valid class for command type.
*/
public static EpsonProjectorCommandType getCommandType(String commandTypeText) throws IllegalArgumentException {
for (EpsonProjectorCommandType c : EpsonProjectorCommandType.values()) {
if (c.text.equalsIgnoreCase(commandTypeText)) {
if (c.text.equals(commandTypeText)) {
return c;
}
}

throw new IllegalArgumentException("Not valid command type");
throw new IllegalArgumentException("Not valid command type: " + commandTypeText);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ private void updateChannelState(Channel channel) {
}
}
} catch (IllegalArgumentException e) {
logger.warn("Unknown channel {}", channel.getUID().getId());
logger.warn("Unknown channel {}, exception: {}", channel.getUID().getId(), e.getMessage());
}
}

Expand Down

0 comments on commit 4f4f4bd

Please sign in to comment.