
package de.ivu.elect.business.system.entity;

import java.util.EnumSet;
import java.util.Set;

import javax.servlet.SessionTrackingMode;

public enum HttpSessionTracking {

  DEFAULT {

    @Override
    public boolean isStorageAnpassen() {
      return false;
    }

    @Override
    public Set<SessionTrackingMode> getSessionTrackingModes() {
      throw new UnsupportedOperationException();
    }
  },
  COOKIE {

    @Override
    public Set<SessionTrackingMode> getSessionTrackingModes() {
      return EnumSet.of(SessionTrackingMode.COOKIE);
    }
  },
  URL {

    @Override
    public Set<SessionTrackingMode> getSessionTrackingModes() {
      return EnumSet.of(SessionTrackingMode.URL);
    }
  },
  COOKIE_URL {

    @Override
    public Set<SessionTrackingMode> getSessionTrackingModes() {
      return EnumSet.of(SessionTrackingMode.COOKIE, SessionTrackingMode.URL);
    }
  },

  //  SSL {
  //    @Override
  //    public Set<SessionTrackingMode> getSessionTrackingModes() {
  //      return EnumSet.of(SessionTrackingMode.SSL);
  //    }
  //  },

  ;

  public boolean isStorageAnpassen() {
    return true;
  }

  public abstract Set<SessionTrackingMode> getSessionTrackingModes();
}
