EN · DE · RU · FR · ES

#765: ClassConverter.java

projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/ClassConverter.java Type: Java · Role: Converter · Source: projectforge-business/src/main/java/org/projectforge/framework/xmlstream/converter/ClassConverter.java 66 lines · 26 code · 35 comments · 5 blank
XML stream converter implementing IConverter for type-safe serialization/deserialization between string representations and Java objects.

Code Structure

Package: org.projectforge.framework.xmlstream.converter

Classes: ClassConverter

Implements: IConverter>

Methods (1): toString

Imports: 2 packages

Source Code (abridged)

package org.projectforge.framework.xmlstream.converter;

import org.apache.commons.lang3.StringUtils;
import org.projectforge.framework.xmlstream.XmlConstants;

/**
 * Class names are stored as full qualified strings such as "org.projectforge.web.calendar.CalendarPage".
 * @author Kai Reinhard (k.reinhard@micromata.de)
 *
 */
public class ClassConverter implements IConverter<Class< ? >>
{
  static org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ClassConverter.class);

  /**
   * Returns the Class represented by the given string, otherwise null if the class can't be instantiated or the given string is null.
   * @see org.projectforge.framework.xmlstream.converter.IConverter#fromString(java.lang.String)
   * @see Class#forName(String)
   */
  @Override
  public Class< ? > fromString(final String str)
  {
    if (StringUtils.isBlank(str) || XmlConstants.NULL_IDENTIFIER.equals(str)) {
      return null;
    }
    try {
      final Class< ? > clazz = Class.forName(str);
      return clazz;
    } catch (final ClassNotFoundException ex) {
      log.warn("Can't convert value '" + str + "' to class (no such class found).");
      return null;
    }
  }

  /**
   * @see org.projectforge.framework.xmlstream.converter.IConverter#toString(java.lang.Object)
   */
  @Override
  public String toString(final Object obj)
  {
    return String.valueOf(obj);
  }
}

Git History

868d6abb7 2025 -> 2026
63081666f Source file headers: 2024-> 2025.
b6092df09 Copyright 2023 -> 2024
ab45d51fa Copyright 2001-2022 -> 2001-2023.
5f7ef41b8 Copyright 2021 -> 2022