Skip to content

Commit

Permalink
add original component to period
Browse files Browse the repository at this point in the history
  • Loading branch information
tbee committed Mar 12, 2020
1 parent 9c32018 commit d1a0011
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 18 deletions.
33 changes: 23 additions & 10 deletions src/main/java/net/fortuna/ical4j/model/Component.java
Expand Up @@ -31,13 +31,6 @@
*/
package net.fortuna.ical4j.model;

import net.fortuna.ical4j.model.parameter.Value;
import net.fortuna.ical4j.model.property.*;
import net.fortuna.ical4j.util.Strings;
import net.fortuna.ical4j.validate.ValidationException;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;

import java.io.IOException;
import java.io.Serializable;
import java.net.URISyntaxException;
Expand All @@ -46,6 +39,20 @@
import java.util.List;
import java.util.stream.Collectors;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;

import net.fortuna.ical4j.model.parameter.Value;
import net.fortuna.ical4j.model.property.DateProperty;
import net.fortuna.ical4j.model.property.DtStart;
import net.fortuna.ical4j.model.property.Duration;
import net.fortuna.ical4j.model.property.ExDate;
import net.fortuna.ical4j.model.property.ExRule;
import net.fortuna.ical4j.model.property.RDate;
import net.fortuna.ical4j.model.property.RRule;
import net.fortuna.ical4j.util.Strings;
import net.fortuna.ical4j.validate.ValidationException;

/**
* $Id$ [Apr 5, 2004]
* <p/>
Expand Down Expand Up @@ -145,7 +152,8 @@ protected Component(final String s, final PropertyList<Property> p) {
/**
* {@inheritDoc}
*/
public String toString() {
@Override
public String toString() {
return BEGIN +
':' +
getName() +
Expand Down Expand Up @@ -238,7 +246,8 @@ protected final void validateProperties() throws ValidationException {
/**
* {@inheritDoc}
*/
public boolean equals(final Object arg0) {
@Override
public boolean equals(final Object arg0) {
if (arg0 instanceof Component) {
final Component c = (Component) arg0;
return new EqualsBuilder().append(getName(), c.getName())
Expand All @@ -250,7 +259,8 @@ public boolean equals(final Object arg0) {
/**
* {@inheritDoc}
*/
public int hashCode() {
@Override
public int hashCode() {
return new HashCodeBuilder().append(getName()).append(getProperties())
.toHashCode();
}
Expand Down Expand Up @@ -396,6 +406,9 @@ public final PeriodList calculateRecurrenceSet(final Period period) {
|| exRuleDates.contains(new Date(recurrence.getStart()));
});

// set a link to the origin
recurrenceSet.forEach( p -> p.setComponent(this));

return recurrenceSet;
}
}
30 changes: 22 additions & 8 deletions src/main/java/net/fortuna/ical4j/model/Period.java
Expand Up @@ -31,13 +31,13 @@
*/
package net.fortuna.ical4j.model;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;

import java.text.ParseException;
import java.time.temporal.TemporalAmount;
import java.util.Date;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;

/**
* $Id$ [Apr 14, 2004]
*
Expand All @@ -54,6 +54,7 @@ public class Period extends DateRange implements Comparable<Period> {
private static final long serialVersionUID = 7321090422911676490L;

private TemporalAmountAdapter duration;
private Component component;

/**
* Constructor.
Expand Down Expand Up @@ -189,7 +190,8 @@ public final DateTime getStart() {
* @return true if the specified date occurs within the current period
* @deprecated use {@link Period#includes(Date, int)} instead.
*/
public final boolean includes(final Date date, final boolean inclusive) {
@Deprecated
public final boolean includes(final Date date, final boolean inclusive) {
if (inclusive) {
return includes(date, INCLUSIVE_START | INCLUSIVE_END);
}
Expand Down Expand Up @@ -312,7 +314,8 @@ public final void setTimeZone(final TimeZone timezone) {
/**
* {@inheritDoc}
*/
public final String toString() {
@Override
public final String toString() {
final StringBuilder b = new StringBuilder();
b.append(getStart());
b.append('/');
Expand All @@ -334,7 +337,8 @@ public final String toString() {
* @return a postive value if this period is greater, negative if the other is
* greater, or zero if they are equal
*/
public final int compareTo(final Period arg0) {
@Override
public final int compareTo(final Period arg0) {
// Throws documented exception if type is wrong or parameter is null
if (arg0 == null) {
throw new ClassCastException("Cannot compare this object to null");
Expand All @@ -357,7 +361,8 @@ else if (duration == null) {
/**
* {@inheritDoc}
*/
public final boolean equals(final Object o) {
@Override
public final boolean equals(final Object o) {
if (this == o) {
return true;
}
Expand All @@ -374,9 +379,18 @@ public final boolean equals(final Object o) {
/**
* {@inheritDoc}
*/
public final int hashCode() {
@Override
public final int hashCode() {
return new HashCodeBuilder().append(getStart())
.append((duration == null) ? getEnd() : duration)
.toHashCode();
}

public Component getComponent() {
return component;
}

public void setComponent(Component component) {
this.component = component;
}
}

0 comments on commit d1a0011

Please sign in to comment.