当前位置: 首页>>代码示例>>Java>>正文


Java StreamInterface.setSubject方法代码示例

本文整理汇总了Java中org.pentaho.di.trans.step.errorhandling.StreamInterface.setSubject方法的典型用法代码示例。如果您正苦于以下问题:Java StreamInterface.setSubject方法的具体用法?Java StreamInterface.setSubject怎么用?Java StreamInterface.setSubject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.pentaho.di.trans.step.errorhandling.StreamInterface的用法示例。


在下文中一共展示了StreamInterface.setSubject方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: readData

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
private void readData(Node stepnode)
	throws KettleXMLException
{
	try
	{ 
           List<StreamInterface> infoStreams = getStepIOMeta().getInfoStreams();
           StreamInterface headStream = infoStreams.get(0);
           StreamInterface tailStream = infoStreams.get(1);
		headStream.setSubject( XMLHandler.getTagValue(stepnode, "head_name") );  //$NON-NLS-1$
		tailStream.setSubject( XMLHandler.getTagValue(stepnode, "tail_name") );  //$NON-NLS-1$			
	}
	catch(Exception e)
	{
		throw new KettleXMLException(BaseMessages.getString(PKG, "AppendMeta.Exception.UnableToLoadStepInfo"), e); //$NON-NLS-1$
	}
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:17,代码来源:AppendMeta.java

示例2: readData

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
private void readData(Node stepnode, List<? extends SharedObjectInterface> databases)
	throws KettleXMLException
{
	try
	{
		databaseMeta              = DatabaseMeta.findDatabase(databases, XMLHandler.getTagValue(stepnode, "connection"));
		sql                       = XMLHandler.getTagValue(stepnode, "sql");
		rowLimit                  = XMLHandler.getTagValue(stepnode, "limit");

        String lookupFromStepname = XMLHandler.getTagValue(stepnode, "lookup"); //$NON-NLS-1$
        StreamInterface infoStream = getStepIOMeta().getInfoStreams().get(0);
        infoStream.setSubject(lookupFromStepname);

		executeEachInputRow       = "Y".equals(XMLHandler.getTagValue(stepnode, "execute_each_row"));
           variableReplacementActive = "Y".equals(XMLHandler.getTagValue(stepnode, "variables_active"));
           lazyConversionActive      = "Y".equals(XMLHandler.getTagValue(stepnode, "lazy_conversion_active"));
	}
	catch(Exception e)
	{
		throw new KettleXMLException("Unable to load step info from XML", e);
	}
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:23,代码来源:TableInputMeta.java

示例3: readRep

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
public void readRep(Repository rep, ObjectId id_step, List<DatabaseMeta> databases, Map<String, Counter> counters) throws KettleException
{
	try
	{
		databaseMeta = rep.loadDatabaseMetaFromStepAttribute(id_step, "id_connection", databases);  //$NON-NLS-1$
		
		sql                       =      rep.getStepAttributeString (id_step, "sql");
		rowLimit = rep.getStepAttributeString(id_step, "limit");
		if (rowLimit==null) {
			rowLimit = Long.toString( rep.getStepAttributeInteger(id_step, "limit") );
		}

        String lookupFromStepname =  rep.getStepAttributeString (id_step, "lookup"); //$NON-NLS-1$
        StreamInterface infoStream = getStepIOMeta().getInfoStreams().get(0);
        infoStream.setSubject(lookupFromStepname);

           executeEachInputRow       =      rep.getStepAttributeBoolean(id_step, "execute_each_row");
           variableReplacementActive =      rep.getStepAttributeBoolean(id_step, "variables_active");
           lazyConversionActive      =      rep.getStepAttributeBoolean(id_step, "lazy_conversion_active");
	}
	catch(Exception e)
	{
		throw new KettleException("Unexpected error reading step information from the repository", e);
	}
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:26,代码来源:TableInputMeta.java

示例4: readRep

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {
  this.databases = databases;
  try {
    databaseMeta = rep.loadDatabaseMetaFromStepAttribute( id_step, "id_connection", databases );

    sql = rep.getStepAttributeString( id_step, "sql" );
    rowLimit = rep.getStepAttributeString( id_step, "limit" );
    if ( rowLimit == null ) {
      rowLimit = Long.toString( rep.getStepAttributeInteger( id_step, "limit" ) );
    }

    String lookupFromStepname = rep.getStepAttributeString( id_step, "lookup" );
    StreamInterface infoStream = getStepIOMeta().getInfoStreams().get( 0 );
    infoStream.setSubject( lookupFromStepname );

    executeEachInputRow = rep.getStepAttributeBoolean( id_step, "execute_each_row" );
    variableReplacementActive = rep.getStepAttributeBoolean( id_step, "variables_active" );
    lazyConversionActive = rep.getStepAttributeBoolean( id_step, "lazy_conversion_active" );
  } catch ( Exception e ) {
    throw new KettleException( "Unexpected error reading step information from the repository", e );
  }
}
 
开发者ID:pentaho,项目名称:pentaho-kettle,代码行数:23,代码来源:TableInputMeta.java

示例5: readData

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
private void readData( Node stepnode, List<? extends SharedObjectInterface> databases ) throws KettleXMLException {
  this.databases = databases;
  try {
    databaseMeta = DatabaseMeta.findDatabase( databases, XMLHandler.getTagValue( stepnode, "connection" ) );
    sql = XMLHandler.getTagValue( stepnode, "sql" );
    rowLimit = XMLHandler.getTagValue( stepnode, "limit" );

    String lookupFromStepname = XMLHandler.getTagValue( stepnode, "lookup" );
    StreamInterface infoStream = getStepIOMeta().getInfoStreams().get( 0 );
    infoStream.setSubject( lookupFromStepname );

    executeEachInputRow = "Y".equals( XMLHandler.getTagValue( stepnode, "execute_each_row" ) );
    variableReplacementActive = "Y".equals( XMLHandler.getTagValue( stepnode, "variables_active" ) );
    lazyConversionActive = "Y".equals( XMLHandler.getTagValue( stepnode, "lazy_conversion_active" ) );
  } catch ( Exception e ) {
    throw new KettleXMLException( "Unable to load step info from XML", e );
  }
}
 
开发者ID:pentaho,项目名称:pentaho-kettle,代码行数:19,代码来源:TableInputMeta.java

示例6: readData

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
private void readData(Node stepnode)
	throws KettleXMLException
{
	try
	{ 
           
           Node keysnode   = XMLHandler.getSubNode(stepnode, "keys"); //$NON-NLS-1$
           Node valuesnode = XMLHandler.getSubNode(stepnode, "values"); //$NON-NLS-1$
           
	    int nrKeys   = XMLHandler.countNodes(keysnode, "key"); //$NON-NLS-1$
           int nrValues = XMLHandler.countNodes(valuesnode, "value"); //$NON-NLS-1$
           
           allocate(nrKeys, nrValues);
           
           for (int i=0;i<nrKeys;i++) 
           {
               Node keynode = XMLHandler.getSubNodeByNr(keysnode, "key", i); //$NON-NLS-1$
               keyFields[i] = XMLHandler.getNodeValue(keynode);
           }
           
           for (int i=0;i<nrValues;i++) 
           {
               Node valuenode = XMLHandler.getSubNodeByNr(valuesnode, "value", i); //$NON-NLS-1$
               valueFields[i] = XMLHandler.getNodeValue(valuenode);
           }
           
           flagField = XMLHandler.getTagValue(stepnode, "flag_field"); //$NON-NLS-1$
           
           List<StreamInterface> infoStreams = getStepIOMeta().getInfoStreams();
           StreamInterface referenceStream = infoStreams.get(0);
           StreamInterface compareStream = infoStreams.get(1);

		compareStream.setSubject( XMLHandler.getTagValue(stepnode, "compare") ); //$NON-NLS-1$
		referenceStream.setSubject( XMLHandler.getTagValue(stepnode, "reference") ); //$NON-NLS-1$
	}
	catch(Exception e)
	{
		throw new KettleXMLException(BaseMessages.getString(PKG, "MergeRowsMeta.Exception.UnableToLoadStepInfo"), e); //$NON-NLS-1$
	}
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:41,代码来源:MergeRowsMeta.java

示例7: readRep

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
public void readRep(Repository rep, ObjectId id_step, List<DatabaseMeta> databases, Map<String, Counter> counters) throws KettleException
{
	try
	{
           int nrKeys = rep.countNrStepAttributes(id_step, "key_field"); //$NON-NLS-1$
           int nrValues = rep.countNrStepAttributes(id_step, "value_field"); //$NON-NLS-1$
           
		allocate(nrKeys, nrValues);
           
           for (int i=0;i<nrKeys;i++)
           {
               keyFields[i] = rep.getStepAttributeString(id_step, i, "key_field"); //$NON-NLS-1$
           }
           for (int i=0;i<nrValues;i++)
           {
               valueFields[i] = rep.getStepAttributeString(id_step, i, "value_field"); //$NON-NLS-1$
           }

           flagField  =   rep.getStepAttributeString (id_step, "flag_field");  //$NON-NLS-1$

           List<StreamInterface> infoStreams = getStepIOMeta().getInfoStreams();
           StreamInterface referenceStream = infoStreams.get(0);
           StreamInterface compareStream = infoStreams.get(1);

		referenceStream.setSubject( rep.getStepAttributeString (id_step, "reference") );  //$NON-NLS-1$
		compareStream.setSubject( rep.getStepAttributeString (id_step, "compare") );  //$NON-NLS-1$
	}
	catch(Exception e)
	{
		throw new KettleException(BaseMessages.getString(PKG, "MergeRowsMeta.Exception.UnexpectedErrorReadingStepInfo"), e); //$NON-NLS-1$
	}
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:33,代码来源:MergeRowsMeta.java

示例8: readRep

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
public void readRep(Repository rep, ObjectId id_step, List<DatabaseMeta> databases, Map<String, Counter> counters) throws KettleException
{
	try
	{
		String lookupFromStepname =  rep.getStepAttributeString (id_step, "lookup_from_step"); //$NON-NLS-1$
		StreamInterface infoStream = getStepIOMeta().getInfoStreams().get(0);
		infoStream.setSubject(lookupFromStepname);

           inputSorted = rep.getStepAttributeBoolean(id_step, "input_sorted"); //$NON-NLS-1$
		memoryPreservationActive = rep.getStepAttributeBoolean(id_step, "preserve_memory"); // $NON-NLS-1$
           usingSortedList = rep.getStepAttributeBoolean(id_step, "sorted_list"); // $NON-NLS-1$
           usingIntegerPair = rep.getStepAttributeBoolean(id_step, "integer_pair"); // $NON-NLS-1$
           
		int nrkeys   = rep.countNrStepAttributes(id_step, "lookup_key_name"); //$NON-NLS-1$
		int nrvalues = rep.countNrStepAttributes(id_step, "return_value_name"); //$NON-NLS-1$
		
		allocate(nrkeys, nrvalues);
		
		for (int i=0;i<nrkeys;i++)
		{
			keystream[i] = rep.getStepAttributeString(id_step, i, "lookup_key_name"); //$NON-NLS-1$
			keylookup[i] = rep.getStepAttributeString(id_step, i, "lookup_key_field"); //$NON-NLS-1$
		}

		for (int i=0;i<nrvalues;i++)
		{
			value[i]        =                rep.getStepAttributeString(id_step, i, "return_value_name"); //$NON-NLS-1$
			valueName[i]    =                rep.getStepAttributeString(id_step, i, "return_value_rename"); //$NON-NLS-1$
			valueDefault[i]     =                rep.getStepAttributeString(id_step, i, "return_value_default"); //$NON-NLS-1$
			valueDefaultType[i] = ValueMeta.getType( rep.getStepAttributeString(id_step, i, "return_value_type")); //$NON-NLS-1$
		}
	}
	catch(Exception e)
	{
		throw new KettleException(BaseMessages.getString(PKG, "StreamLookupMeta.Exception.UnexpecteErrorReadingStepInfoFromRepository"), e); //$NON-NLS-1$
	}
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:38,代码来源:StreamLookupMeta.java

示例9: readRep

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
public void readRep(Repository rep, ObjectId id_step, List<DatabaseMeta> databases, Map<String, Counter> counters)
throws KettleException
{
   	try
	{
		String lookupFromStepname =  rep.getStepAttributeString (id_step, "lookup_from_step"); //$NON-NLS-1$
		StreamInterface infoStream = getStepIOMeta().getInfoStreams().get(0);
		infoStream.setSubject(lookupFromStepname);
           lookupfield = rep.getStepAttributeString(id_step, "lookupfield"); //$NON-NLS-1$
		mainstreamfield = rep.getStepAttributeString(id_step, "mainstreamfield"); // $NON-NLS-1$
		outputmatchfield = rep.getStepAttributeString(id_step, "outputmatchfield");
		outputvaluefield = rep.getStepAttributeString(id_step, "outputvaluefield");
		
		caseSensitive = rep.getStepAttributeBoolean(id_step, "caseSensitive");
		closervalue = rep.getStepAttributeBoolean(id_step, "closervalue");
		minimalValue = rep.getStepAttributeString(id_step, "minimalValue");
		maximalValue = rep.getStepAttributeString(id_step, "maximalValue");
		separator = rep.getStepAttributeString(id_step, "separator");
		
       	algorithm = getAlgorithmTypeByCode(Const.NVL(rep.getStepAttributeString(id_step, "algorithm"), ""));
       	
           int nrvalues = rep.countNrStepAttributes(id_step, "return_value_name"); //$NON-NLS-1$
		allocate(nrvalues);

		for (int i=0;i<nrvalues;i++)
		{
			value[i]        = rep.getStepAttributeString(id_step, i, "return_value_name"); //$NON-NLS-1$
			valueName[i]    = rep.getStepAttributeString(id_step, i, "return_value_rename"); //$NON-NLS-1$
		}
	}
	catch(Exception e)
	{
		throw new KettleException(BaseMessages.getString(PKG, "FuzzyMatchMeta.Exception.UnexpecteErrorReadingStepInfoFromRepository"), e); //$NON-NLS-1$
	}
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:36,代码来源:FuzzyMatchMeta.java

示例10: readRep

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
public void readRep(Repository rep, ObjectId id_step, List<DatabaseMeta> databases, Map<String, Counter> counters) throws KettleException
{
	try
	{
           List<StreamInterface> infoStreams = getStepIOMeta().getInfoStreams();
           StreamInterface headStream = infoStreams.get(0);
           StreamInterface tailStream = infoStreams.get(1);
           headStream.setSubject( rep.getStepAttributeString (id_step, "head_name") );  //$NON-NLS-1$
           tailStream.setSubject( rep.getStepAttributeString (id_step, "tail_name") );  //$NON-NLS-1$
	}
	catch(Exception e)
	{
		throw new KettleException(BaseMessages.getString(PKG, "AppendMeta.Exception.UnexpectedErrorReadingStepInfo"), e); //$NON-NLS-1$
	}
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:16,代码来源:AppendMeta.java

示例11: readRep

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
@Override
public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {
  try {
    int nrKeys = rep.countNrStepAttributes( id_step, "key_field" );
    int nrValues = rep.countNrStepAttributes( id_step, "value_field" );

    allocate( nrKeys, nrValues );

    for ( int i = 0; i < nrKeys; i++ ) {
      keyFields[i] = rep.getStepAttributeString( id_step, i, "key_field" );
    }
    for ( int i = 0; i < nrValues; i++ ) {
      valueFields[i] = rep.getStepAttributeString( id_step, i, "value_field" );
    }

    flagField = rep.getStepAttributeString( id_step, "flag_field" );

    List<StreamInterface> infoStreams = getStepIOMeta().getInfoStreams();
    StreamInterface referenceStream = infoStreams.get( 0 );
    StreamInterface compareStream = infoStreams.get( 1 );

    referenceStream.setSubject( rep.getStepAttributeString( id_step, "reference" ) );
    compareStream.setSubject( rep.getStepAttributeString( id_step, "compare" ) );
  } catch ( Exception e ) {
    throw new KettleException( BaseMessages.getString(
      PKG, "MergeRowsMeta.Exception.UnexpectedErrorReadingStepInfo" ), e );
  }
}
 
开发者ID:pentaho,项目名称:pentaho-kettle,代码行数:29,代码来源:MergeRowsMeta.java

示例12: readData

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
private void readData( Node stepnode ) throws KettleXMLException {
  try {
    List<StreamInterface> infoStreams = getStepIOMeta().getInfoStreams();
    StreamInterface headStream = infoStreams.get( 0 );
    StreamInterface tailStream = infoStreams.get( 1 );
    headStream.setSubject( XMLHandler.getTagValue( stepnode, "head_name" ) );
    tailStream.setSubject( XMLHandler.getTagValue( stepnode, "tail_name" ) );
  } catch ( Exception e ) {
    throw new KettleXMLException( BaseMessages.getString( PKG, "AppendMeta.Exception.UnableToLoadStepInfo" ), e );
  }
}
 
开发者ID:pentaho,项目名称:pentaho-kettle,代码行数:12,代码来源:AppendMeta.java

示例13: readRep

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {
  try {
    List<StreamInterface> infoStreams = getStepIOMeta().getInfoStreams();
    StreamInterface headStream = infoStreams.get( 0 );
    StreamInterface tailStream = infoStreams.get( 1 );
    headStream.setSubject( rep.getStepAttributeString( id_step, "head_name" ) );
    tailStream.setSubject( rep.getStepAttributeString( id_step, "tail_name" ) );
  } catch ( Exception e ) {
    throw new KettleException( BaseMessages.getString(
      PKG, "AppendMeta.Exception.UnexpectedErrorReadingStepInfo" ), e );
  }
}
 
开发者ID:pentaho,项目名称:pentaho-kettle,代码行数:13,代码来源:AppendMeta.java

示例14: readRep

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
@Override
public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {
  try {
    String lookupFromStepname = rep.getStepAttributeString( id_step, "lookup_from_step" );
    StreamInterface infoStream = getStepIOMeta().getInfoStreams().get( 0 );
    infoStream.setSubject( lookupFromStepname );

    setInputSorted( rep.getStepAttributeBoolean( id_step, "input_sorted" ) );
    setMemoryPreservationActive( rep.getStepAttributeBoolean( id_step, "preserve_memory" ) );
    setUsingSortedList( rep.getStepAttributeBoolean( id_step, "sorted_list" ) );
    setUsingIntegerPair( rep.getStepAttributeBoolean( id_step, "integer_pair" ) );

    int nrkeys = rep.countNrStepAttributes( id_step, "lookup_key_name" );
    int nrvalues = rep.countNrStepAttributes( id_step, "return_value_name" );

    allocate( nrkeys, nrvalues );

    for ( int i = 0; i < nrkeys; i++ ) {
      // CHECKSTYLE:Indentation:OFF
      getKeystream()[i] = rep.getStepAttributeString( id_step, i, "lookup_key_name" );
      getKeylookup()[i] = rep.getStepAttributeString( id_step, i, "lookup_key_field" );
      // CHECKSTYLE:Indentation:ON
    }

    for ( int i = 0; i < nrvalues; i++ ) {
      // CHECKSTYLE:Indentation:OFF
      getValue()[i] = rep.getStepAttributeString( id_step, i, "return_value_name" );
      getValueName()[i] = rep.getStepAttributeString( id_step, i, "return_value_rename" );
      getValueDefault()[i] = rep.getStepAttributeString( id_step, i, "return_value_default" );
      getValueDefaultType()[i] =
        ValueMetaFactory.getIdForValueMeta( rep.getStepAttributeString( id_step, i, "return_value_type" ) );
      // CHECKSTYLE:Indentation:ON
    }
  } catch ( Exception e ) {
    throw new KettleException( BaseMessages.getString(
      PKG, "StreamLookupMeta.Exception.UnexpecteErrorReadingStepInfoFromRepository" ), e );
  }
}
 
开发者ID:pentaho,项目名称:pentaho-kettle,代码行数:39,代码来源:StreamLookupMeta.java

示例15: readRep

import org.pentaho.di.trans.step.errorhandling.StreamInterface; //导入方法依赖的package包/类
public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {
  try {
    String lookupFromStepname = rep.getStepAttributeString( id_step, "lookup_from_step" );
    StreamInterface infoStream = getStepIOMeta().getInfoStreams().get( 0 );
    infoStream.setSubject( lookupFromStepname );
    lookupfield = rep.getStepAttributeString( id_step, "lookupfield" );
    mainstreamfield = rep.getStepAttributeString( id_step, "mainstreamfield" );
    outputmatchfield = rep.getStepAttributeString( id_step, "outputmatchfield" );
    outputvaluefield = rep.getStepAttributeString( id_step, "outputvaluefield" );

    caseSensitive = rep.getStepAttributeBoolean( id_step, "caseSensitive" );
    closervalue = rep.getStepAttributeBoolean( id_step, "closervalue" );
    minimalValue = rep.getStepAttributeString( id_step, "minimalValue" );
    maximalValue = rep.getStepAttributeString( id_step, "maximalValue" );
    separator = rep.getStepAttributeString( id_step, "separator" );

    algorithm = getAlgorithmTypeByCode( Const.NVL( rep.getStepAttributeString( id_step, "algorithm" ), "" ) );

    int nrvalues = rep.countNrStepAttributes( id_step, "return_value_name" );
    allocate( nrvalues );

    for ( int i = 0; i < nrvalues; i++ ) {
      value[i] = rep.getStepAttributeString( id_step, i, "return_value_name" );
      valueName[i] = rep.getStepAttributeString( id_step, i, "return_value_rename" );
    }
  } catch ( Exception e ) {
    throw new KettleException( BaseMessages.getString(
      PKG, "FuzzyMatchMeta.Exception.UnexpecteErrorReadingStepInfoFromRepository" ), e );
  }
}
 
开发者ID:pentaho,项目名称:pentaho-kettle,代码行数:31,代码来源:FuzzyMatchMeta.java


注:本文中的org.pentaho.di.trans.step.errorhandling.StreamInterface.setSubject方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。