1 package org.apache.torque.adapter; 2 3 /* 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 20 */ 21 22 /** 23 * Interface for various ID retrieval method types 24 * (i.e. auto-increment, sequence, ID broker, etc.). 25 * 26 * @author <a href="mailto:dlr@collab.net">Daniel Rall</a> 27 * @version $Id: IDMethod.java 1336543 2012-05-10 08:56:52Z tfischer $ 28 */ 29 public enum IDMethod 30 { 31 /** 32 * Key generation via database-specific ID method 33 * (i.e. auto-increment for MySQL, sequence for Oracle, etc.). 34 */ 35 NATIVE("native"), 36 37 /** 38 * Key generation via auto-increment. 39 */ 40 AUTO_INCREMENT("autoincrement"), 41 42 /** 43 * Key generation via sequences. 44 */ 45 SEQUENCE("sequence"), 46 47 /** 48 * Key generation via the IDBroker table. 49 */ 50 ID_BROKER("idbroker"), 51 52 /** 53 * No RDBMS key generation (keys may be generated by the application). 54 */ 55 NO_ID_METHOD("none"); 56 57 /** The name of the id method. */ 58 private String idMethod; 59 60 /** 61 * Constructor. 62 * 63 * @param idMethod the text of the idMethod. 64 */ 65 private IDMethod(String idMethod) 66 { 67 this.idMethod = idMethod; 68 } 69 70 @Override 71 public String toString() 72 { 73 return idMethod; 74 } 75 76 /** 77 * Returns the id method for a id method name. 78 * 79 * @param idMethod the name of the id method. 80 * 81 * @return the id method. 82 * 83 * @throws IllegalArgumentException if idMethod is not a known name. 84 */ 85 public static IDMethod getIdMethod(String idMethod) 86 { 87 for (IDMethod candidate : values()) 88 { 89 if (candidate.toString().equals(idMethod)) 90 { 91 return candidate; 92 } 93 } 94 throw new IllegalArgumentException("Unknown idMethod " + idMethod); 95 } 96 }