@Override
	public ForeignKey parse() {
		if(!this.prepared) {
			this.prepared = true;
			
			StringBuilder sB = new StringBuilder();
			sB.append("FOREIGN KEY (");
			int i = 0;
			for(String lF : lFL) {
				if(i > 0) {
					sB.append(", ");
				}else{
					++i;
				}
				
				sB.append(lF);
			}
			
			sB.append(") \n");
			
			sB.append(" REFERENCES ");
			sB.append(this.remoteTable.replace("#__", this.db.getPrefix()));
			sB.append(" (");
			i = 0;
			for(String rF : rFL) {
				if(i > 0) {
					sB.append(", ");
				}else{
					++i;
				}
				
				sB.append(rF);
			}
			sB.append(") \n");
			
			if(null != this.onUpdate) {
				sB.append(" ON UPDATE ");
				sB.append(this.onUpdate.getTextual());
				sB.append(" \n");
			}
			
			if(null != this.onDelete) {
				sB.append(" ON DELETE ");
				sB.append(this.onDelete.getTextual());
				sB.append(" \n");
			}
			
			this.fk = sB.toString();
		}
		
		return this;
	}