Here you can find the source of getAttributeEnum(Node node, String attributeName, Class
public static <T extends Enum<T>> T getAttributeEnum(Node node, String attributeName, Class<T> enumClass)
//package com.java2s; /*//from www . ja va 2 s .c o m * Copyright (c) 2008-2016, GigaSpaces Technologies, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import org.w3c.dom.Node; public class Main { public static <T extends Enum<T>> T getAttributeEnum(Node node, String attributeName, Class<T> enumClass) { return getAttributeEnum(node, attributeName, enumClass, null, false); } public static <T extends Enum<T>> T getAttributeEnum(Node node, String attributeName, Class<T> enumClass, T defaultValue) { return getAttributeEnum(node, attributeName, enumClass, defaultValue, false); } public static <T extends Enum<T>> T getAttributeEnum(Node node, String attributeName, Class<T> enumClass, T defaultValue, boolean throwOnError) { String value = getAttribute(node, attributeName, null); if (value == null || value == "") return defaultValue; try { return Enum.valueOf(enumClass, value.toUpperCase()); } catch (IllegalArgumentException e) { if (throwOnError) throw e; // TODO: Log warning. return defaultValue; } } public static String getAttribute(Node node, String attributeName) { return getAttribute(node, attributeName, null); } public static String getAttribute(Node node, String attributeName, String defaultValue) { Node attribute = node.getAttributes().getNamedItem(attributeName); return attribute != null ? attribute.getTextContent().trim() : defaultValue; } }