001package service.tut.pori.apilta.files.datatypes; 002 003import java.util.ArrayList; 004import java.util.List; 005 006import javax.xml.bind.annotation.XmlAccessType; 007import javax.xml.bind.annotation.XmlAccessorType; 008import javax.xml.bind.annotation.XmlElement; 009import javax.xml.bind.annotation.XmlRootElement; 010 011import core.tut.pori.http.ResponseData; 012 013/** 014 * list of file details. 015 */ 016@XmlRootElement(name=Definitions.ELEMENT_FILE_DETAILS_LIST) 017@XmlAccessorType(XmlAccessType.NONE) 018public class FileDetailsList extends ResponseData { 019 @XmlElement(name=Definitions.ELEMENT_FILE_DETAILS) 020 private List<FileDetails> _files = null; 021 022 /** 023 * @return the files 024 * @see #setFiles(List) 025 */ 026 public List<FileDetails> getFiles() { 027 return _files; 028 } 029 030 /** 031 * @param files the files to set 032 * @see #getFiles() 033 */ 034 public void setFiles(List<FileDetails> files) { 035 _files = files; 036 } 037 038 /** 039 * 040 * @param details 041 * @see #getFiles() 042 */ 043 public void addFile(FileDetails details) { 044 if(_files == null){ 045 _files = new ArrayList<>(); 046 } 047 _files.add(details); 048 } 049 050 /** 051 * for sub-classing, use the static 052 * 053 * @return true if empty 054 * @see #isEmpty(FileDetailsList) 055 */ 056 protected boolean isEmpty() { 057 return (_files == null || _files.isEmpty()); 058 } 059 060 /** 061 * 062 * @param list 063 * @return true if list is null or empty 064 */ 065 public static boolean isEmpty(FileDetailsList list) { 066 return (list == null || list.isEmpty()); 067 } 068 069 /** 070 * for sub-classing, use the static 071 * 072 * @return true if valid 073 * @see #isValid(FileDetailsList) 074 */ 075 protected boolean isValid() { 076 if(isEmpty()){ 077 return false; 078 }else{ 079 for(FileDetails details : _files){ 080 if(!FileDetails.isValid(details)){ 081 return false; 082 } 083 } 084 return true; 085 } 086 } 087 088 /** 089 * 090 * @param list 091 * @return true if the list is not null and valid 092 */ 093 public static boolean isValid(FileDetailsList list) { 094 return (list != null && list.isValid()); 095 } 096}