Recipe Name:
Rewrite clear() using re-instantiation
Description:
Rewrite clear() using re-instantiation
Level:
warning
Language:
  • java
Tags:
  • java.time
  • framework specific
  • Joda-Time
  • quality
Documentation

Migrate from org.joda.time.format.DateTimeFormatterBuilder to Java Time

Joda-Time DateTimeFormatterBuilder migrates to java.time DateTimeFormatterBuilder.

It's the same concept, a builder of the formatter.

Although, most of the methods have a different signature and some even have no equivalent in java.time

Those methods have no equivalent:

  • canBuildFormatter
  • canBuildPrinter
  • canBuildParser

Find some examples below:

Before
    DateTimeFormatterBuilder dtfb = new DateTimeFormatterBuilder();
    DateTimeFormatterBuilder appendSecondOfDay = dtfb.appendSecondOfDay(intArg);
After
    java.time.format.DateTimeFormatterBuilder dtfb = new java.time.format.DateTimeFormatterBuilder();
    java.time.format.DateTimeFormatterBuilder appendSecondOfDay = dtfb.appendValue(ChronoField.SECOND_OF_DAY, intArg);
References
Recipe
id: scw:java.time:Joda-Time:datetimeformatterbuilder-clear
version: 10
metadata:
  name: Rewrite clear() using re-instantiation
  shortDescription: Rewrite clear() using re-instantiation
  level: warning
  language: java
  enabled: true
  comment: |-
    Method clear is not present in java.time.
    Rewrite instantiating a new object.
  descriptionFile: descriptions/datetimeformatterbuilder.html
  tags: java.time;framework specific;Joda-Time;quality
search:
  methodcall:
    name: clear
    type: java.time.format.DateTimeFormatterBuilder
availableFixes:
- name: Rewrite clear() using re-instantiation
  actions:
  - rewrite:
      to: '{{{ qualifier }}} = new java.time.format.DateTimeFormatterBuilder()'