Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2014-2015 the original author or authors.
   *
   * 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.
  */
 package org.dbflute.infra.core;
 
 import java.util.Map;
 import java.util.Set;
 

Author(s):
jflute
 
 public class DfDatabaseNameMapping {
 
     // ===============================================================================
     //                                                                      Definition
     //                                                                      ==========
     private static final DfDatabaseNameMapping _instance = new DfDatabaseNameMapping();
 
     // ===============================================================================
     //                                                                       Attribute
     //                                                                       =========
     protected final String _databaseNameMappingString;
     {
         // this code was written when jflute was very young (it remains without refactoring)
         final StringBuilder sb = new StringBuilder();
         sb.append("map:{");
         sb.append("    ; mysql      = map:{generateName = MySql      ; defName = mysql}");
         sb.append("    ; postgresql = map:{generateName = PostgreSql ; defName = postgresql}");
         sb.append("    ; oracle     = map:{generateName = Oracle     ; defName = oracle}");
         sb.append("    ; db2        = map:{generateName = Db2        ; defName = db2}");
         sb.append("    ; sqlserver  = map:{generateName = SqlServer  ; defName = sqlserver}");
         sb.append("    ; mssql      = map:{generateName = SqlServer  ; defName = sqlserver}"); // for compatible
         sb.append("    ; h2         = map:{generateName = H2         ; defName = h2}");
         sb.append("    ; derby      = map:{generateName = Derby      ; defName = derby}");
         sb.append("    ; sqlite     = map:{generateName = Sqlite     ; defName = sqlite}");
         sb.append("    ; msaccess   = map:{generateName = MsAccess   ; defName = msaccess}");
         sb.append("    ; firebird   = map:{generateName = Firebird   ; defName = firebird}");
         sb.append("    ; sybase     = map:{generateName = Sybase     ; defName = sybase}");
         sb.append("    ; default    = map:{generateName = Default    ; defName = unknown}");
         sb.append("}");
          = sb.toString();
     }
 
     protected final Map<StringMap<StringString>> _databaseNameMappingMap;
     {
          = analyze();
     }
 
     // ===============================================================================
     //                                                                     Constructor
     //                                                                     ===========
     private DfDatabaseNameMapping() {
     }
 
     public static DfDatabaseNameMapping getInstance() {
         return ;
     }
 
     // ===============================================================================
     //                                                                       Analyzing
     //                                                                       =========
     protected Map<StringMap<StringString>> analyze() {
         final MapListString mapListString = new MapListString();
         final Map<StringObjectmap = mapListString.generateMap();
         final Map<StringMap<StringString>> realMap = new LinkedHashMap<StringMap<StringString>>();
         final Set<Entry<StringObject>> entrySet = map.entrySet();
         for (Entry<StringObjectentry : entrySet) {
             final String key = entry.getKey();
             final Map<?, ?> elementMap = (Map<?, ?>) entry.getValue();
             final Map<StringStringelementRealMap = new LinkedHashMap<StringString>();
             final Set<?> elementEntrySet = elementMap.entrySet();
             for (Object object : elementEntrySet) {
                 @SuppressWarnings("unchecked")
                 final Entry<ObjectObjectelementEntry = (Entry<ObjectObject>) object;
                 final Object elementKey = elementEntry.getKey();
                 final Object elementValue = elementEntry.getValue();
                 elementRealMap.put((StringelementKey, (StringelementValue);
             }
             realMap.put(keyelementRealMap);
         }
         return realMap;
     }
    // ===============================================================================
    //                                                                         Mapping
    //                                                                         =======
    public Map<StringStringfindMapping(String databaseType) {
        Map<StringStringmap = .get(databaseType);
        if (map == null) {
            map = .get("default");
        }
        return map;
    }
    public String findGenerateName(String databaseType) {
        final Map<StringStringmapping = findMapping(databaseType);
        final String generateName = (Stringmapping.get("generateName");
        if (generateName == null || generateName.trim().length() == 0) {
            String msg = "The database should have its generateName: " + mapping;
            throw new IllegalStateException(msg);
        }
        return generateName;
    }
    public DBDef findDBDef(String databaseType) {
        final Map<StringStringmapping = findMapping(databaseType);
        final String defName = (Stringmapping.get("defName");
        if (defName == null || defName.trim().length() == 0) {
            String msg = "The database should have its defName: " + mapping;
            throw new IllegalStateException(msg);
        }
        final DBDef dbdef = DBDef.codeOf(defName);
        return dbdef != null ? dbdef : .;
    }
New to GrepCode? Check out our FAQ X