package org.mykarte.service.retrieve.impl;

import java.util.Calendar;
import java.util.Map;


/**
 * Attachment インターフェイス
 */
public interface IAttachment {
  /**
   * 認証する。
   * 
   * @param args 引数
   * @return true: OK, false: NG
   */
  boolean authenticate(String[] args);

  /**
   * 患者IDを取得する。
   * 
   * @return 患者ID
   */
  String getPatient();

  /**
   * 患者IDを設定する。
   * 
   * @param patientId 患者ID
   */
  void setPatient(String patientId);

  /**
   * type, attribute を設定する。
   * 
   * @param props type, attribute
   */
  void setProperties(String[] props);

  /**
   * 日付を取得する。
   * 
   * @param startDate 開始日
   * @param endDate 終了日
   * @param diff 差分
   * @return 日付
   */
  Calendar[] getDates(Calendar startDate, Calendar endDate, boolean diff);

  /**
   * 指定した日付のデータを文字列として取得する。
   * 
   * @param date 日付
   * @return 文字列
   */
  String getContent(Calendar date);

  /**
   * 指定した日付のデータをファイルとして取得する。
   * 
   * @param date 日付
   * @return ファイルパス, descriptionId
   */
  Map<String, String> getFiles(Calendar date);
}
