1, 昨天的成就:
a) 完成的任务:数据库连接成功.
b) 所花时间:4h
c) 还剩余1h
2, 遇到的困难:
a) 在设计虚拟数据实验时,还是老查不到教室,经常出bug。
3, 今天的任务:
a) 设置课表添加。
package com.mnnyang.gzuclassschedule.data.bean;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import com.mnnyang.gzuclassschedule.custom.course.CourseAncestor;
import com.mnnyang.gzuclassschedule.utils.LogUtil;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* Created by mnnyang on 17-10-22.
*/
public class Course extends CourseAncestor implements Comparable<Course> {
private int courseId;
public static final int NODE_NOON = -1;
private String name;
private String classRoom;
private int week;
private List<Integer> nodes = new ArrayList<>();
private int startWeek;
private int endWeek;
private int weekType = SHOW_ALL;
private String teacher;
private String source;
private boolean showOverlap = true;
private String csName;
/**
* 课程表名 courseId
*/
private int csNameId;
public void init() {
setRow(getWeek());
setStartIndex(getStartWeek());
setEndIndex(getEndWeek());
setShowType(getWeekType());
if (!getNodes().isEmpty()) {
setCol(getNodes().get(0));
setRowNum(getNodes().size());
} else {
LogUtil.e(this, "Node data is empty-->" + this.toString());
}
if (TextUtils.isEmpty(getClassRoom())) {
setText(getName());
} else {
setText(getName() + "\n@" + getClassRoom());
}
}
public String getName() {
return name;
}
public Course setName(String name) {
this.name = name;
return this;
}
public String getClassRoom() {
return classRoom;
}
public Course setClassRoom(String classRoom) {
this.classRoom = classRoom;
return this;
}
public int getWeek() {
return week;
}
public Course setWeek(int week) {
this.week = week;
this.row = this.week;
return this;
}
public int getStartWeek() {
return startWeek;
}
public Course setStartWeek(int startWeek) {
this.startWeek = startWeek;
return this;
}
public int getEndWeek() {
return endWeek;
}
public Course setEndWeek(int endWeek) {
this.endWeek = endWeek;
return this;
}
public int getWeekType() {
return weekType;
}
public Course setWeekType(int weekType) {
this.weekType = weekType;
return this;
}
public String getTeacher() {
return teacher;
}
public Course setTeacher(String teacher) {
this.teacher = teacher;
return this;
}
public String getSource() {
return source;
}
public Course setSource(String source) {
this.source = source;
return this;
}
public boolean isShowOverlap() {
return showOverlap;
}
public Course setOverlapShow(boolean showOverlap) {
this.showOverlap = showOverlap;
return this;
}
public String getCsName() {
return csName;
}
public Course setCsName(String csName) {
this.csName = csName;
return this;
}
public int getCourseId() {
return courseId;
}
public Course setCourseId(int courseId) {
this.courseId = courseId;
return this;
}
public int getCsNameId() {
return csNameId;
}
public Course setCsNameId(int csNameId) {
this.csNameId = csNameId;
return this;
}
public List<Integer> getNodes() {
return nodes;
}
/**
* 设置课程节数
* *必须升序排列 例如:3 4 节课
* *错位部分将会被抛弃 例如:2 4节课程将会抛弃4
*/
public void setNodes(String[] nodes) {
int intNodes[] = new int[nodes.length];
try {
for (int i = 0; i < nodes.length; i++) {
intNodes[i] = Integer.decode(nodes[i]);
}
setNodes(intNodes);
} catch (Exception e) {
LogUtil.d(this, "setNodes(String[] nodes) Integer.decode(nodes[i]); err");
e.printStackTrace();
}
}
/**
* 设置课程节数
* 必须生序排列
*/
public void setNodes(int[] nodes) {
if (nodes.length == 0) {
return;
}
try {
int lastNode = nodes[0];
int tempNode = 0;
addNode(lastNode);
for (int i = 1; i < nodes.length; i++) {
tempNode = nodes[i];
if (tempNode - lastNode != 1) {
LogUtil.d(this, "setNodes(String[] nodes) { --> incontinuity" + lastNode + "-" + tempNode);
return;
}
addNode(tempNode);
lastNode = tempNode;
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 添加课程节数
*/
public Course addNode(int node) {
if (!this.nodes.contains(node)) {
this.nodes.add(node);
Collections.sort(this.nodes, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
}
return this;
}
@Override
public String toString() {
return super.toString() + "DownCourse{" +
"courseId=" + courseId +
", name='" + name + '\'' +
", classRoom='" + classRoom + '\'' +
", week=" + week +
", nodes=" + nodes +
", startWeek=" + startWeek +
", endWeek=" + endWeek +
", weekType=" + weekType +
", teacher='" + teacher + '\'' +
", source='" + source + '\'' +
", showOverlap=" + showOverlap +
", csName='" + csName + '\'' +
", csNameId=" + csNameId +
'}';
}
public String toSelfString() {
return "DownCourse{" +
"courseId=" + courseId +
", name='" + name + '\'' +
", classRoom='" + classRoom + '\'' +
", week=" + week +
", nodes=" + nodes +
", startWeek=" + startWeek +
", endWeek=" + endWeek +
", weekType=" + weekType +
", teacher='" + teacher + '\'' +
", source='" + source + '\'' +
", showOverlap=" + showOverlap +
", csName='" + csName + '\'' +
", csNameId=" + csNameId +
'}';
}
@Override
public int compareTo(@NonNull Course o) {
int weekStatus = week - o.getWeek();
if (weekStatus != 0) {
return weekStatus;
}
if (getNodes().size() == 0) {
return 1;
}
if (o.getNodes().size() == 0) {
return -1;
}
return nodes.get(0) - o.getNodes().get(0);
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj.getClass() != this.getClass()) {
return false;
}
Course course = (Course) obj;
if (getWeek() != course.getWeek()) {
return false;
}
if (getNodes().size() == 0 || course.getNodes().size() == 0) {
return false;
}
if (!getNodes().get(0).equals(course.getNodes().get(0))) {
return false;
}
if (getWeekType() != course.getWeekType()) {
return false;
}
if (this.getEndWeek() < course.getStartWeek()
|| course.getEndWeek() < this.getStartWeek()) {
return false;
}
return true;
}
}
浙公网安备 33010602011771号