/** * Copyright 2006-2016 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.mybatis.generator.codegen.ibatis2.dao.elements; import static org.mybatis.generator.internal.util.StringUtility.stringHasValue; import static org.mybatis.generator.internal.util.messages.Messages.getString; import org.mybatis.generator.api.DAOMethodNameCalculator; import org.mybatis.generator.api.dom.java.Interface; import org.mybatis.generator.api.dom.java.JavaVisibility; import org.mybatis.generator.api.dom.java.TopLevelClass; import org.mybatis.generator.codegen.AbstractGenerator; import org.mybatis.generator.codegen.ibatis2.dao.templates.AbstractDAOTemplate; import org.mybatis.generator.config.PropertyRegistry; import org.mybatis.generator.internal.DefaultDAOMethodNameCalculator; import org.mybatis.generator.internal.ExtendedDAOMethodNameCalculator; import org.mybatis.generator.internal.ObjectFactory; /** * * @author Jeff Butler */ public abstract class AbstractDAOElementGenerator extends AbstractGenerator { public abstract void addInterfaceElements(Interface interfaze); public abstract void addImplementationElements(TopLevelClass topLevelClass); protected AbstractDAOTemplate daoTemplate; private DAOMethodNameCalculator dAOMethodNameCalculator; private JavaVisibility exampleMethodVisibility; public AbstractDAOElementGenerator() { super(); } public void setDAOTemplate(AbstractDAOTemplate abstractDAOTemplate) { this.daoTemplate = abstractDAOTemplate; } public DAOMethodNameCalculator getDAOMethodNameCalculator() { if (dAOMethodNameCalculator == null) { String type = context.getJavaClientGeneratorConfiguration() .getProperty(PropertyRegistry.DAO_METHOD_NAME_CALCULATOR); if (stringHasValue(type)) { if ("extended".equalsIgnoreCase(type)) { //$NON-NLS-1$ type = ExtendedDAOMethodNameCalculator.class.getName(); } else if ("default".equalsIgnoreCase(type)) { //$NON-NLS-1$ type = DefaultDAOMethodNameCalculator.class.getName(); } } else { type = DefaultDAOMethodNameCalculator.class.getName(); } try { dAOMethodNameCalculator = (DAOMethodNameCalculator) ObjectFactory .createInternalObject(type); } catch (Exception e) { dAOMethodNameCalculator = new DefaultDAOMethodNameCalculator(); warnings.add(getString( "Warning.17", type, e.getMessage())); //$NON-NLS-1$ } } return dAOMethodNameCalculator; } public JavaVisibility getExampleMethodVisibility() { if (exampleMethodVisibility == null) { String type = context .getJavaClientGeneratorConfiguration() .getProperty(PropertyRegistry.DAO_EXAMPLE_METHOD_VISIBILITY); if (stringHasValue(type)) { if ("public".equalsIgnoreCase(type)) { //$NON-NLS-1$ exampleMethodVisibility = JavaVisibility.PUBLIC; } else if ("private".equalsIgnoreCase(type)) { //$NON-NLS-1$ exampleMethodVisibility = JavaVisibility.PRIVATE; } else if ("protected".equalsIgnoreCase(type)) { //$NON-NLS-1$ exampleMethodVisibility = JavaVisibility.PROTECTED; } else if ("default".equalsIgnoreCase(type)) { //$NON-NLS-1$ exampleMethodVisibility = JavaVisibility.DEFAULT; } else { exampleMethodVisibility = JavaVisibility.PUBLIC; warnings.add(getString("Warning.16", type)); //$NON-NLS-1$ } } else { exampleMethodVisibility = JavaVisibility.PUBLIC; } } return exampleMethodVisibility; } }