Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[epsonprojector] Fix equalsIgnoreCase issue #11141

Merged
merged 1 commit into from
Aug 24, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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