Package org.springframework.roo.addon.dbre.converter

Source Code of org.springframework.roo.addon.dbre.converter.SchemaConverter

package org.springframework.roo.addon.dbre.converter;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.apache.commons.lang3.StringUtils;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
import org.springframework.roo.addon.dbre.model.DbreModelService;
import org.springframework.roo.addon.dbre.model.Schema;
import org.springframework.roo.shell.Completion;
import org.springframework.roo.shell.Converter;
import org.springframework.roo.shell.MethodTarget;

/**
* Provides conversion to and from database schemas.
*
* @author Alan Stewart
* @since 1.1
*/
@Component
@Service
public class SchemaConverter implements Converter<Set<Schema>> {

    @Reference private DbreModelService dbreModelService;

    public Set<Schema> convertFromText(final String value,
            final Class<?> requiredType, final String optionContext) {
        final Set<Schema> schemas = new HashSet<Schema>();
        for (final String schemaName : StringUtils.split(value, " ")) {
            schemas.add(new Schema(schemaName));
        }
        return schemas;
    }

    public boolean getAllPossibleValues(final List<Completion> completions,
            final Class<?> requiredType, final String existingData,
            final String optionContext, final MethodTarget target) {
        try {
            if (dbreModelService.supportsSchema(false)) {
                final Set<Schema> schemas = dbreModelService.getSchemas(false);
                for (final Schema schema : schemas) {
                    completions.add(new Completion(schema.getName()));
                }
            }
            else {
                completions.add(new Completion(
                        DbreModelService.NO_SCHEMA_REQUIRED));
            }
        }
        catch (final Exception e) {
            completions.add(new Completion("unable-to-obtain-connection"));
        }

        return true;
    }

    public boolean supports(final Class<?> requiredType,
            final String optionContext) {
        return Set.class.isAssignableFrom(requiredType)
                && optionContext.contains("schema");
    }
}
TOP

Related Classes of org.springframework.roo.addon.dbre.converter.SchemaConverter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.