Example usage for com.google.common.base Strings repeat

List of usage examples for com.google.common.base Strings repeat

Introduction

In this page you can find the example usage for com.google.common.base Strings repeat.

Prototype

public static String repeat(String string, int count) 

Source Link

Document

Returns a string consisting of a specific number of concatenated copies of an input string.

Usage

From source file:org.fabrician.enabler.DockerContainer.java

private void buildDockerImage() throws Exception {
    getEngineLogger()//from  www  .  ja va 2 s  .co  m
            .info(Strings.repeat("-", 10) + "building [" + dockerImage + "]" + Strings.repeat("-", 10));
    // check if we should reuse existing image?
    boolean reuse_image = resolveToBoolean(REUSE_IMAGE_VAR);
    boolean image_exist = dockerClient().isImageExist(dockerImage);
    if (reuse_image) {
        if (image_exist) {
            getEngineLogger().info("Existing docker image [" + dockerImage + "] exists and will be reused.");
            return;
        }
    } else {
        // delete existing image before build
        if (image_exist) {
            getEngineLogger().info("Deleting existing docker image [" + dockerImage + "] before build.");
            dockerClient().deleteImageByTag(dockerImage);
        }
    }
    // check if Docker file exits?
    File dockerContextDir = resolveToFile(DOCKER_CONTEXT_DIR_VAR);
    File dockerFile = new File(dockerContextDir, "Dockerfile");
    Validate.isTrue(dockerFile.exists(),
            "Required Dockerfile for build does not exist at path [" + dockerFile.getCanonicalPath() + "]");
    // construct build options
    String command = "docker build " + BuildCmdOptions.buildAll(getRuntimeContext()) + " -t " + dockerImage
            + " . ";
    if (useSudo) {
        command = "sudo " + command;
    }
    getEngineLogger().info(Strings.repeat("-", 10) + " begin build command " + Strings.repeat("-", 10));
    getEngineLogger().info(command);
    getEngineLogger().info(Strings.repeat("-", 10) + " end build command " + Strings.repeat("-", 10));
    ProcessWrapper p = null;
    int build_timeout = resolveToInteger(BUILD_TIMEOUT_VAR);// in secs
    try {
        String engineOS = getEngineProperty(EngineProperties.OS);
        p = getProcessWrapper(command, dockerContextDir, engineOS + "_build.pid");
        Object lock = p.getLock();
        p.exec();
        synchronized (lock) {
            try {
                if (p.isRunning()) {
                    lock.wait(build_timeout * 1000);
                    if (p.isRunning()) {
                        p.destroy();
                    }
                }
            } catch (InterruptedException e) {
                getEngineLogger().warning("buildDockerImage() thread was interrupted");
            }
        }
    } catch (Exception ex) {
        getEngineLogger().log(Level.SEVERE, "while building docker image [" + dockerImage + "]", ex);
        throw ex;
    }
    // check for image

    image_exist = dockerClient().isImageExist(dockerImage);
    if (!image_exist) {
        throw new Exception("Build failed for image [" + dockerImage + "]");
    } else {
        getEngineLogger().info("Build succeeded for image [" + dockerImage + "]");
    }
}

From source file:org.eclipse.elk.layered.JsonDebugUtil.java

/**
 * Writes the given ports as JSON formatted string to the given writer.
 * /*from w  w  w .  j a v  a  2  s .com*/
 * @param writer
 *            the writer to write to.
 * @param ports
 *            the ports to write.
 * @param indentation
 *            the indentation level to use.
 * @throws IOException
 *             if anything goes wrong with the writer.
 */
private static void writePorts(final Writer writer, final List<LPort> ports, final int indentation)
        throws IOException {

    String indent0 = Strings.repeat(INDENT, indentation);
    String indent1 = Strings.repeat(INDENT, indentation + 1);
    String indent2 = Strings.repeat(INDENT, indentation + 2);
    writer.write(indent0 + "\"ports\": [");
    Iterator<LPort> portsIterator = ports.iterator();
    while (portsIterator.hasNext()) {
        LPort port = portsIterator.next();
        writer.write("\n" + indent1 + "{\n" + indent2 + "\"id\": \"p" + port.hashCode() + "\",\n" + indent2
                + "\"width\": " + port.getSize().x + ",\n" + indent2 + "\"height\": " + port.getSize().y + ",\n"
                + indent2 + "\"x\": " + port.getPosition().x + ",\n" + indent2 + "\"y\": "
                + port.getPosition().y + ",\n");
        writeProperties(writer, port.getAllProperties(), indentation + 2);
        writer.write("\n" + indent1 + "}");
        if (portsIterator.hasNext()) {
            writer.write(",");
        }
    }
    writer.write("\n" + indent0 + "]");
}

From source file:de.cau.cs.kieler.klay.layered.JsonDebugUtil.java

/**
 * Writes the given properties as JSON formatted string to the given
 * ConsoleWriter./*  w ww . ja va  2  s.  co  m*/
 *
 * @param ConsoleWriter
 *            the ConsoleWriter to write to.
 * @param properties
 *            the properties to write.
 * @param indentation
 *            the indentation level to use.
 * @throws IOException
 *             if anything goes wrong with the ConsoleWriter.
 */
private static void writeProperties(final ConsoleWriter ConsoleWriter,
        final Map<IProperty<?>, Object> properties, final int indentation) throws IOException {

    final String indent0 = Strings.repeat(INDENT, indentation);
    final String indent1 = Strings.repeat(INDENT, indentation + 1);
    ConsoleWriter.write(indent0 + "\"properties\": {");
    final Iterator<Entry<IProperty<?>, Object>> propertiesIterator = properties.entrySet().iterator();
    while (propertiesIterator.hasNext()) {
        final Entry<IProperty<?>, Object> property = propertiesIterator.next();
        final String id = property.getKey().getId();
        // Test whether the given id is a registered layout option. If not,
        // prefix the id with
        // DEBUG_ID_PREFIX
        final String val = getValueRepresentation(property.getKey(), property.getValue());
        ConsoleWriter.write("\n" + indent1 + "\"" + id + "\": \"" + val.replace("\"", "\\\"") + "\"");
        if (propertiesIterator.hasNext()) {
            ConsoleWriter.write(",");
        }
    }
    ConsoleWriter.write("\n" + indent0 + "}");
}

From source file:org.eclipse.xtext.generator.trace.AbstractTraceRegionToString.java

protected void render(final AbstractTraceRegionToString.RegionHandle region, final int idW, final int offsetW,
        final int lengthW, final int indent, final List<String> result) {
    final String id = Strings.padStart(Integer.toString(region.id, this.radix), idW, '0');
    String _xifexpression = null;
    boolean _isUseForDebugging = region.region.isUseForDebugging();
    if (_isUseForDebugging) {
        _xifexpression = "D";
    } else {// w ww . j  a  va  2 s . c  o  m
        _xifexpression = " ";
    }
    final String debug = _xifexpression;
    final String offset = Strings.padStart(Integer.toString(region.region.getMyOffset()), offsetW, '0');
    final String length = Strings.padStart(Integer.toString(region.region.getMyLength()), lengthW, '0');
    final String space = Strings.repeat(" ", indent);
    final String name = region.region.getClass().getSimpleName();
    final Function1<AbstractTraceRegionToString.LocationHandle, String> _function = (
            AbstractTraceRegionToString.LocationHandle it) -> {
        return this.render(it);
    };
    final String locations = IterableExtensions.join(
            ListExtensions.<AbstractTraceRegionToString.LocationHandle, String>map(region.locations, _function),
            ", ");
    final String loc = (((((debug + " ") + offset) + "-") + length) + space);
    final String header = (((((id + ": ") + loc) + name) + " -> ") + locations);
    boolean _isEmpty = region.children.isEmpty();
    if (_isEmpty) {
        result.add(header);
    } else {
        result.add((header + " {"));
        for (final AbstractTraceRegionToString.RegionHandle child : region.children) {
            this.render(child, idW, offsetW, lengthW, (indent + 2), result);
        }
        String _repeat = Strings.repeat(" ", loc.length());
        String _plus = ((id + ": ") + _repeat);
        String _plus_1 = (_plus + "}");
        result.add(_plus_1);
    }
}

From source file:com.zimbra.cs.db.SQLite.java

@Override
public String lpad(String field, int padSize, String padString) {
    return "SUBSTR('" + Strings.repeat(padString, padSize) + "' || " + field + ", -" + padSize + ", " + padSize
            + ")";
}

From source file:org.eclipse.elk.layered.JsonDebugUtil.java

/**
 * Writes the given properties as JSON formatted string to the given writer.
 * /*from   w w w  .  j a  v  a 2s. co  m*/
 * @param writer
 *            the writer to write to.
 * @param properties
 *            the properties to write.
 * @param indentation
 *            the indentation level to use.
 * @throws IOException
 *             if anything goes wrong with the writer.
 */
private static void writeProperties(final Writer writer, final Map<IProperty<?>, Object> properties,
        final int indentation) throws IOException {

    String indent0 = Strings.repeat(INDENT, indentation);
    String indent1 = Strings.repeat(INDENT, indentation + 1);
    writer.write(indent0 + "\"properties\": {");
    Iterator<Entry<IProperty<?>, Object>> propertiesIterator = properties.entrySet().iterator();
    while (propertiesIterator.hasNext()) {
        Entry<IProperty<?>, Object> property = propertiesIterator.next();
        String id = property.getKey().getId();
        final String val = getValueRepresentation(property.getKey(), property.getValue());
        writer.write("\n" + indent1 + "\"" + id + "\": \"" + val.replace("\"", "\\\"") + "\"");
        if (propertiesIterator.hasNext()) {
            writer.write(",");
        }
    }
    writer.write("\n" + indent0 + "}");
}

From source file:org.eclipse.xtext.generator.trace.AbstractTraceRegionToString.java

protected String render() {
    final AbstractTraceRegionToString.File localFile = new AbstractTraceRegionToString.File(null);
    final LinkedHashMap<SourceRelativeURI, AbstractTraceRegionToString.File> remoteFiles = CollectionLiterals.<SourceRelativeURI, AbstractTraceRegionToString.File>newLinkedHashMap();
    final List<AbstractTraceRegionToString.RegionHandle> roothandles = CollectionLiterals.<AbstractTraceRegionToString.RegionHandle>newArrayList();
    final int maxid = this.collect(this.getTrace(), 1, localFile, remoteFiles, roothandles);
    final int idwidth = Integer.toString(maxid, this.radix).length();
    List<String> _render = this.render(localFile, idwidth);
    Iterables.<String>addAll(localFile.lines, _render);
    Collection<AbstractTraceRegionToString.File> _values = remoteFiles.values();
    for (final AbstractTraceRegionToString.File file : _values) {
        List<String> _render_1 = this.render(file, idwidth);
        Iterables.<String>addAll(file.lines, _render_1);
    }/*from  w w w.  j  a  va 2  s.c  om*/
    final Function1<String, Integer> _function = (String it) -> {
        return Integer.valueOf(it.length());
    };
    Integer _max = IterableExtensions
            .<Integer>max(ListExtensions.<String, Integer>map(localFile.lines, _function));
    int _length = this.getLocalTitle().length();
    int _plus = (_length + 2);
    final int localWidth = Math.max((_max).intValue(), _plus);
    final Function1<AbstractTraceRegionToString.File, Integer> _function_1 = (
            AbstractTraceRegionToString.File it) -> {
        final Function1<String, Integer> _function_2 = (String it_1) -> {
            return Integer.valueOf(it_1.length());
        };
        Integer _max_1 = IterableExtensions
                .<Integer>max(ListExtensions.<String, Integer>map(it.lines, _function_2));
        int _length_1 = this.getRemoteTitle(it.uri).length();
        int _plus_1 = (_length_1 + 2);
        return Integer.valueOf(Math.max((_max_1).intValue(), _plus_1));
    };
    final Integer remoteWidth = IterableExtensions.<Integer>max(
            IterableExtensions.<AbstractTraceRegionToString.File, Integer>map(remoteFiles.values(),
                    _function_1));
    localFile.lines.add(0, this.title(null, localWidth));
    Collection<AbstractTraceRegionToString.File> _values_1 = remoteFiles.values();
    for (final AbstractTraceRegionToString.File file_1 : _values_1) {
        file_1.lines.add(0, this.title(file_1.uri, (remoteWidth).intValue()));
    }
    final List<String> left = localFile.lines;
    final Function1<AbstractTraceRegionToString.File, List<String>> _function_2 = (
            AbstractTraceRegionToString.File it) -> {
        return it.lines;
    };
    final List<String> right = IterableExtensions.<String>toList(
            Iterables.<String>concat(IterableExtensions.<AbstractTraceRegionToString.File, List<String>>map(
                    remoteFiles.values(), _function_2)));
    final ArrayList<String> result = CollectionLiterals.<String>newArrayList();
    if (this.showLegend) {
        result.add(
                "Regions are surrounded by [N[ ... ]N]. Regions on the left and right with the same N are associated.");
    }
    for (int i = 0; ((i < ((Object[]) Conversions.unwrapArray(left, Object.class)).length)
            || (i < ((Object[]) Conversions.unwrapArray(right, Object.class)).length)); i++) {
        {
            String _xifexpression = null;
            int _size = left.size();
            boolean _lessThan = (i < _size);
            if (_lessThan) {
                _xifexpression = left.get(i);
            } else {
                _xifexpression = "";
            }
            final String l = Strings.padEnd(_xifexpression, localWidth, ' ');
            String _xifexpression_1 = null;
            int _size_1 = right.size();
            boolean _lessThan_1 = (i < _size_1);
            if (_lessThan_1) {
                _xifexpression_1 = right.get(i);
            } else {
                _xifexpression_1 = "";
            }
            final String r = _xifexpression_1;
            result.add(((l + " | ") + r));
        }
    }
    if (this.showTree) {
        String _repeat = Strings.repeat("-", ((localWidth + (remoteWidth).intValue()) + 3));
        result.add(_repeat);
        if (this.showLegend) {
            result.add(
                    "<N>: <isDebug> <offset>-<length> <RegionJavaClass> -> <LocationJavaClass>[<offset>,<length>,<uri>]");
        }
        final Function1<AbstractTraceRegionToString.RegionHandle, Set<AbstractTraceRegionToString.RegionHandle>> _function_3 = (
                AbstractTraceRegionToString.RegionHandle it) -> {
            final Function1<AbstractTraceRegionToString.RegionHandle, Iterable<AbstractTraceRegionToString.RegionHandle>> _function_4 = (
                    AbstractTraceRegionToString.RegionHandle it_1) -> {
                return it_1.children;
            };
            return this.<AbstractTraceRegionToString.RegionHandle>collect(it, _function_4);
        };
        final Iterable<AbstractTraceRegionToString.RegionHandle> allhandles = Iterables.<AbstractTraceRegionToString.RegionHandle>concat(
                ListExtensions.<AbstractTraceRegionToString.RegionHandle, Set<AbstractTraceRegionToString.RegionHandle>>map(
                        roothandles, _function_3));
        final Function1<AbstractTraceRegionToString.RegionHandle, Integer> _function_4 = (
                AbstractTraceRegionToString.RegionHandle it) -> {
            return Integer.valueOf(it.region.getMyOffset());
        };
        final int offsetWidth = String.valueOf(IterableExtensions.<Integer>max(
                IterableExtensions.<AbstractTraceRegionToString.RegionHandle, Integer>map(allhandles,
                        _function_4)))
                .length();
        final Function1<AbstractTraceRegionToString.RegionHandle, Integer> _function_5 = (
                AbstractTraceRegionToString.RegionHandle it) -> {
            return Integer.valueOf(it.region.getMyLength());
        };
        final int lengthWidth = String.valueOf(IterableExtensions.<Integer>max(
                IterableExtensions.<AbstractTraceRegionToString.RegionHandle, Integer>map(allhandles,
                        _function_5)))
                .length();
        for (final AbstractTraceRegionToString.RegionHandle handle : roothandles) {
            this.render(handle, idwidth, offsetWidth, lengthWidth, 1, result);
        }
    }
    return IterableExtensions.join(result, org.eclipse.xtext.util.Strings.newLine());
}

From source file:org.basepom.mojo.duplicatefinder.DuplicateFinderMojo.java

private void writeResultFile(File resultFile,
        ImmutableMap<String, Entry<ResultCollector, ClasspathDescriptor>> results)
        throws MojoExecutionException, InvalidVersionSpecificationException, OverConstrainedVersionException {
    File parent = resultFile.getParentFile();
    if (!parent.exists()) {
        if (!parent.mkdirs()) {
            throw new MojoExecutionException("Could not create parent folders for " + parent.getAbsolutePath());
        }//from ww w .ja va 2s  .  c o m
    }
    if (!parent.isDirectory() || !parent.canWrite()) {
        throw new MojoExecutionException("Can not create result file in " + parent.getAbsolutePath());
    }

    try {
        SMOutputFactory factory = new SMOutputFactory(XMLOutputFactory2.newFactory());
        SMOutputDocument resultDocument = factory.createOutputDocument(resultFile);
        resultDocument.setIndentation("\n" + Strings.repeat(" ", 64), 1, 4);

        SMOutputElement rootElement = resultDocument.addElement("duplicate-finder-result");
        XMLWriterUtils.addAttribute(rootElement, "version", SAVE_FILE_VERSION);

        XMLWriterUtils.addProjectInformation(rootElement, project);

        addConfiguration(rootElement);

        SMOutputElement resultsElement = rootElement.addElement("results");
        for (Map.Entry<String, Entry<ResultCollector, ClasspathDescriptor>> entry : results.entrySet()) {
            SMOutputElement resultElement = resultsElement.addElement("result");
            XMLWriterUtils.addAttribute(resultElement, "name", entry.getKey());
            XMLWriterUtils.addResultCollector(resultElement, entry.getValue().getKey());
            XMLWriterUtils.addClasspathDescriptor(resultElement, resultFileMinClasspathCount,
                    entry.getValue().getValue());
        }

        resultDocument.closeRootAndWriter();
    } catch (XMLStreamException e) {
        throw new MojoExecutionException("While writing result file", e);
    }
}

From source file:com.analog.lyric.util.test.Helpers.java

private static String getNodeString(FactorGraph fg, int tabDepth) {
    String tabString = Strings.repeat("\t", tabDepth);
    //graph itself
    StringBuilder sb = new StringBuilder(tabString + "------Nodes------\n");

    //functions// www .  j  a  va 2 s.  com
    sb.append(tabString);
    //      sb.append("Functions:\n");
    for (Factor fn : fg.getOwnedFactors()) {
        sb.append(tabString);
        sb.append("\t");
        sb.append(fn.getQualifiedLabel());
        sb.append("\n");
    }

    //boundary variables
    sb.append(tabString);
    sb.append("Boundary variables:\n");
    for (Variable v : FactorGraphIterables.boundary(fg)) {
        sb.append(tabString);
        sb.append("\t");
        sb.append(v.getQualifiedLabel());
        sb.append("\n");
    }

    //owned variables
    sb.append(tabString);
    sb.append("Owned variables:\n");
    for (Variable v : fg.getOwnedVariables()) {
        sb.append(tabString);
        sb.append("\t");
        sb.append(v.getQualifiedLabel());
        sb.append("\n");
    }

    //child graphs
    sb.append(tabString);
    sb.append("Sub graphs:\n");
    for (FactorGraph g : fg.getOwnedGraphs()) {
        sb.append(tabString);
        sb.append(g.toString());
        sb.append("\n");
        sb.append(getNodeString(g, tabDepth + 1));
    }
    return sb.toString();
}

From source file:org.apache.ctakes.ytex.uima.mapper.DocumentMapperServiceImpl.java

/**
 * load mapping info//from w  ww  .  j av a 2 s.  com
 * 
 * @param type
 * @return
 */
private AnnoMappingInfo initMapInfo(final FeatureStructure fs) {
    final Type type = fs.getType();
    final String annoName = type.getShortName().toLowerCase();
    AnnoMappingInfo mapInfoTmp;
    final UimaType ut = uimaTypeMap.get(type.getName());
    if (this.mapAnnoMappingInfo.containsKey(type.getName())) {
        mapInfoTmp = this.mapAnnoMappingInfo.get(type.getName()).deepCopy();
    } else {
        mapInfoTmp = new AnnoMappingInfo();
    }
    final AnnoMappingInfo mapInfo = mapInfoTmp;
    if (ut != null)
        mapInfo.setUimaTypeId(ut.getUimaTypeID());
    // first see if the table name has been set in beans-uima.xml
    if (Strings.isNullOrEmpty(mapInfo.getTableName())) {
        // next see if the table name has been set in ref_uima_type
        if (ut != null && !Strings.isNullOrEmpty(ut.getTableName()))
            mapInfo.setTableName(ut.getTableName());
        else
            // default to anno_[short name]
            mapInfo.setTableName("anno_" + annoName);
    }
    final List<Feature> features = type.getFeatures();
    // get the non primitive fields
    for (Feature f : features) {
        if (f.getRange().isArray() && !f.getRange().getComponentType().isPrimitive()) {
            // add this field to the list of fields to store
            this.tl_mapFieldInfo.get().put(type.getName(), f.getShortName());
        }
    }
    this.sessionFactory.getCurrentSession().doWork(new Work() {
        @Override
        public void execute(Connection conn) throws SQLException {
            ResultSet rs = null;

            try {
                DatabaseMetaData dmd = conn.getMetaData();
                // get columns for corresponding table
                // mssql - add schema prefix
                // oracle - convert table name to upper case
                rs = dmd.getColumns(null, "mssql".equals(dbType) || "hsql".equals(dbType) ? dbSchema : null,
                        "orcl".equals(dbType) || "hsql".equals(dbType) ? mapInfo.getTableName().toUpperCase()
                                : mapInfo.getTableName(),
                        null);
                while (rs.next()) {
                    String colName = rs.getString("COLUMN_NAME");
                    int colSize = rs.getInt("COLUMN_SIZE");
                    int dataType = rs.getInt("DATA_TYPE");
                    if ("anno_base_id".equalsIgnoreCase(colName)) {
                        // skip anno_base_id
                        continue;
                    }
                    if ("uima_type_id".equalsIgnoreCase(colName)) {
                        // see if there is a uima_type_id column
                        // for FeatureStructures that are not annotations
                        // there can be a field for the uima_type_id
                        if (!(fs instanceof Annotation)
                                && Strings.isNullOrEmpty(mapInfo.getUimaTypeIdColumnName())) {
                            mapInfo.setUimaTypeIdColumnName(colName);
                        }
                    } else if ("coveredText".equalsIgnoreCase(colName)) {
                        // see if there is a coveredText column, store the
                        // covered
                        // text here
                        ColumnMappingInfo coveredTextColumn = new ColumnMappingInfo();
                        coveredTextColumn.setColumnName(colName);
                        mapInfo.setCoveredTextColumn(coveredTextColumn);
                        coveredTextColumn.setSize(colSize);
                    } else {
                        // possibility 1: the column is already mapped to
                        // the field
                        // if so, then just set the size
                        if (!updateSize(mapInfo, colName, colSize, dataType)) {
                            // possibility 2: the column is not mapped - see
                            // if
                            // it matches a field
                            // iterate through features, see which match the
                            // column
                            for (Feature f : features) {
                                String annoFieldName = f.getShortName();
                                if (f.getRange().isPrimitive() && annoFieldName.equalsIgnoreCase(colName)) {
                                    // primitive attribute
                                    ColumnMappingInfo fmap = new ColumnMappingInfo();
                                    fmap.setAnnoFieldName(annoFieldName);
                                    fmap.setColumnName(colName);
                                    fmap.setSize(colSize);
                                    fmap.setSqlType(dataType);
                                    mapInfo.getMapField().put(colName, fmap);
                                    break;
                                } else if (!f.getRange().isArray() && !f.getRange().isPrimitive()
                                        && annoFieldName.equalsIgnoreCase(colName)
                                        && (dataType == Types.INTEGER || dataType == Types.SMALLINT
                                                || dataType == Types.BIGINT || dataType == Types.NUMERIC
                                                || dataType == Types.FLOAT || dataType == Types.DOUBLE)) {
                                    // this feature is a reference to
                                    // another
                                    // annotation.
                                    // this column is numeric - a match
                                    ColumnMappingInfo fmap = new ColumnMappingInfo();
                                    fmap.setAnnoFieldName(annoFieldName);
                                    fmap.setColumnName(colName);
                                    fmap.setSize(colSize);
                                    fmap.setSqlType(dataType);
                                    mapInfo.getMapField().put(colName, fmap);
                                    break;
                                }
                            }
                        }
                    }
                }
            } finally {
                if (rs != null) {
                    try {
                        rs.close();
                    } catch (SQLException e) {
                    }
                }
            }
        }
    });
    // don't map this annotation if no fields match columns
    if (mapInfo.getMapField().size() == 0 && mapInfo.getCoveredTextColumn() == null
            && Strings.isNullOrEmpty(mapInfo.getUimaTypeIdColumnName()))
        return null;
    // generate sql
    StringBuilder b = new StringBuilder("insert into ");
    b.append(this.getTablePrefix()).append(mapInfo.getTableName());
    b.append("(anno_base_id");
    // add coveredText column if available
    if (mapInfo.getCoveredTextColumn() != null) {
        b.append(", coveredText");
    }
    // add uima_type_id column if available
    if (mapInfo.getUimaTypeIdColumnName() != null) {
        b.append(", uima_type_id");
    }
    // add other fields
    for (Map.Entry<String, ColumnMappingInfo> fieldEntry : mapInfo.getMapField().entrySet()) {
        b.append(", ").append(dialect.openQuote()).append(fieldEntry.getValue().getColumnName())
                .append(dialect.closeQuote());
    }
    b.append(") values (?");
    // add coveredText bind param
    if (mapInfo.getCoveredTextColumn() != null) {
        b.append(", ?");
    }
    // add uimaTypeId bind param
    if (mapInfo.getUimaTypeIdColumnName() != null) {
        b.append(", ?");
    }
    // add bind params for other fields
    b.append(Strings.repeat(", ?", mapInfo.getMapField().size())).append(")");
    mapInfo.setSql(b.toString());
    if (log.isInfoEnabled())
        log.info("sql insert for type " + type.getName() + ": " + mapInfo.getSql());
    if (log.isDebugEnabled())
        log.debug("initMapInfo(" + annoName + "): " + mapInfo);
    return mapInfo;
}