All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.java.ao.schema.UnderscoreTableNameConverter Maven / Gradle / Ivy

Go to download

This is the full Active Objects library, if you don't know which one to use, you probably want this one.

There is a newer version: 6.1.1
Show newest version
package net.java.ao.schema;

import java.util.Objects;

import static net.java.ao.Common.convertSimpleClassName;
import static net.java.ao.schema.UnderScoreUtils.camelCaseToUnderScore;

/**
 * 

Imposes an underscore word-separation convention on table * names. This will convert entity names in the following way:

* * * * * * * * * * * * * * * * * * * * * * * * * * *
Entity NameTable Name
Personperson
LicenseRegistrationlicense_registration
Volume4volume_4
Companycompany
* *

This converter allows for both all-lowercase and all-uppercase * table name conventions. For example, depending on the configuration, * LicenseRegistration may convert to "LICENSE_REGISTRATION".

* *

This converter, coupled with {@link PluralizedTableNameConverter} is * all that is required to emulate the ActiveRecord table name conversion.

*/ public final class UnderscoreTableNameConverter extends CanonicalClassNameTableNameConverter { private final Case tableNameCase; public UnderscoreTableNameConverter(Case tableNameCase) { this.tableNameCase = Objects.requireNonNull(tableNameCase, "tableNameCase can't be null"); } @Override protected String getName(String entityClassCanonicalName) { return tableNameCase.apply(camelCaseToUnderScore(convertSimpleClassName(entityClassCanonicalName))); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy