package com.l7tech.security.xml.processor;

import com.l7tech.util.DateTranslator;
import org.w3c.dom.Element;

public class WssTimestampWrapper implements WssTimestamp {
   private final WssTimestamp a;
   private final DateTranslator b;
   private WssTimestampDate c = null;
   private WssTimestampDate d = null;

   public WssTimestampWrapper(WssTimestamp var1) {
      this.a = var1;
      this.b = null;
   }

   public WssTimestampWrapper(WssTimestamp var1, DateTranslator var2) {
      this.a = var1;
      this.b = var2;
   }

   @Override
   public WssTimestampDate getCreated() {
      if (this.c != null) {
         return this.c;
      } else {
         return this.b != null && this.a.getCreated() != null
            ? (this.c = new WssTimestampDateWrapper(this.a.getCreated(), this.b.translate(this.a.getCreated().asTime())))
            : this.a.getCreated();
      }
   }

   @Override
   public WssTimestampDate getExpires() {
      if (this.d != null) {
         return this.d;
      } else {
         return this.b != null && this.a.getExpires() != null
            ? (this.d = new WssTimestampDateWrapper(this.a.getExpires(), this.b.translate(this.a.getExpires().asTime())))
            : this.a.getExpires();
      }
   }

   @Override
   public Element asElement() {
      return this.a.asElement();
   }
}
