| /* |
| * Copyright 2019 WeBank |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.webank.wedatasphere.linkis.storage.script.parser |
| |
| import com.webank.wedatasphere.linkis.storage.exception.StorageErrorException |
| import com.webank.wedatasphere.linkis.storage.script.{Parser, Variable, VariableParser} |
| |
| |
| |
| abstract class CommonScriptParser extends Parser { |
| |
| @scala.throws[StorageErrorException] |
| def parse(line: String): Variable = { |
| val variableReg = ("\\s*" + prefix + "\\s*(.+)\\s*" + "=" + "\\s*(.+)\\s*").r |
| line match { |
| case variableReg(key, value) => Variable(VariableParser.VARIABLE, null, key.trim, value.trim) |
| case _ => { |
| val split = line.split("=") |
| if (split.length != 2) throw new StorageErrorException(65000, "不合法的自定义参数") |
| val value = split(1).trim |
| val subSplit = split(0).split(" ") |
| if (subSplit.filter(_ != "").size != 4) throw new StorageErrorException(65000, "不合法的自定义参数") |
| if(!subSplit.filter(_ != "")(0).equals(prefixConf))throw new StorageErrorException(65000, "不合法的自定义参数") |
| val sortParent = subSplit.filter(_ != "")(1).trim |
| val sort = subSplit.filter(_ != "")(2).trim |
| val key = subSplit.filter(_ != "")(3).trim |
| Variable(sortParent, sort, key,value) |
| } |
| } |
| } |
| } |
| |