001package com.pi4j.io.gpio; 002 003import java.util.EnumSet; 004 005/* 006 * #%L 007 * ********************************************************************** 008 * ORGANIZATION : Pi4J 009 * PROJECT : Pi4J :: Java Library (Core) 010 * FILENAME : PinDirection.java 011 * 012 * This file is part of the Pi4J project. More information about 013 * this project can be found here: http://www.pi4j.com/ 014 * ********************************************************************** 015 * %% 016 * Copyright (C) 2012 - 2013 Pi4J 017 * %% 018 * Licensed under the Apache License, Version 2.0 (the "License"); 019 * you may not use this file except in compliance with the License. 020 * You may obtain a copy of the License at 021 * 022 * http://www.apache.org/licenses/LICENSE-2.0 023 * 024 * Unless required by applicable law or agreed to in writing, software 025 * distributed under the License is distributed on an "AS IS" BASIS, 026 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 027 * See the License for the specific language governing permissions and 028 * limitations under the License. 029 * #L% 030 */ 031 032/** 033 * Pn direction. 034 * 035 * @author Robert Savage (<a 036 * href="http://www.savagehomeautomation.com">http://www.savagehomeautomation.com</a>) 037 */ 038public enum PinDirection { 039 040 IN(0, "in"), 041 OUT(1, "out"); 042 043 private final int value; 044 private final String name; 045 046 private PinDirection(int value, String name) { 047 this.value = value; 048 this.name = name; 049 } 050 051 public int getValue() { 052 return value; 053 } 054 055 public String getName() { 056 return name; 057 } 058 059 @Override 060 public String toString() { 061 return name.toUpperCase(); 062 } 063 064 public static PinDirection getDirection(int direction) { 065 for (PinDirection item : PinDirection.values()) { 066 if (item.getValue() == direction) { 067 return item; 068 } 069 } 070 return null; 071 } 072 073 public static EnumSet<PinDirection> all() { 074 return EnumSet.of(PinDirection.IN, PinDirection.OUT); 075 } 076}