| /******************************************************************************* |
| * Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved. |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 |
| * which accompanies this distribution. |
| * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html |
| * and the Eclipse Distribution License is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * Contributors: |
| * Mike Norman - from Proof-of-concept, become production code |
| ******************************************************************************/ |
| package dbws.testing.shadowddlgeneration.oldjpub; |
| |
| /** |
| * A LangName encapsulates the name of a type for a language. |
| */ |
| public abstract class LangName extends Name { |
| |
| protected String m_useClass; |
| |
| public LangName() { |
| } |
| |
| public LangName(String context, String name) { |
| super(context, name); |
| } |
| |
| /** |
| * Returns the package name of the declared class. |
| */ |
| public String getDeclPackage() { |
| return m_context; |
| } |
| |
| /** |
| * Returns the name of the generated class within the package. This name is generated for the |
| * declaration of the class, as opposed to uses of the class. |
| */ |
| public String getDeclClass() { |
| return m_name; |
| } |
| |
| /** |
| * Convert any unicode character in a string into ASCII code |
| */ |
| protected static String unicode2Ascii(String uni) { |
| if (uni == null || uni.length() == 0) { |
| return uni; |
| } |
| uni = uni.trim(); |
| boolean anyUnicode = false; |
| for (int i = 0; i < uni.length(); i++) { |
| if (!isFilePathPart(uni.charAt(i))) { |
| anyUnicode = true; |
| } |
| } |
| if (!anyUnicode) { |
| return uni; |
| } |
| String asc = ""; |
| for (int i = 0; i < uni.length(); i++) { |
| if (isFilePathPart(uni.charAt(i))) { |
| asc += uni.charAt(i); |
| } |
| else { |
| asc += "_" + Integer.toHexString(uni.charAt(i)); |
| } |
| } |
| return asc; |
| } |
| |
| private static boolean isFilePathPart(char c) { |
| return (c >= '\u0000' && c <= '\u00ff'); |
| } |
| |
| protected static String packageConcat(String package1, String package2) { |
| if (package1 == null || package1.length() == 0) { |
| return package2; |
| } |
| if (package2 == null || package2.length() == 0) { |
| return package1; |
| } |
| return package1 + "." + package2; |
| } |
| |
| } |