Package tvbrowserdataservice.file

Examples of tvbrowserdataservice.file.ProgramField


        ProgramFrame frame = prog.getProgramFrameAt(frameIdx);
        writer.println();
        writer.print("Program ID: ");
        writer.println(frame.getId());
        for (int fieldIdx = 0; fieldIdx < frame.getProgramFieldCount(); fieldIdx++) {
          ProgramField field = frame.getProgramFieldAt(fieldIdx);
          ProgramFieldType type = field.getType();
          writer.print("  ");
          writer.print(type.getName());
          writer.print(": ");
         
          if (type == ProgramFieldType.INFO_TYPE) {
            int info = field.getIntData();
            writer.println(programInfoToString(info));
          } else {
            if (field.getBinaryData() == null) {
              writer.println("(delete)");
            } else {
              switch (type.getFormat()) {
                case ProgramFieldType.TEXT_FORMAT:
                  writer.println(field.getTextData());
                  break;
                case ProgramFieldType.INT_FORMAT:
                  writer.println(field.getIntData());
                  break;
                case ProgramFieldType.TIME_FORMAT:
                  int time = field.getTimeData();
                  int hours = time / 60;
                  int minutes = time % 60;
                  writer.println(hours + ":" + ((minutes < 10) ? "0" : "") + minutes);
                  break;
                case ProgramFieldType.BINARY_FORMAT:
                    binNumber++;
                    writeBinary(new File(destDir, binFileName + "-" + binNumber + ".bin"), field.getBinaryData());
                    break;
                default:
                  writer.println("(binary data)");
                  break;
              }
View Full Code Here


    for (int frameIdx = 0; frameIdx < prog.getProgramFrameCount(); frameIdx++) {
      ProgramFrame frame = prog.getProgramFrameAt(frameIdx);

      // Trim text fields and remove all empty fields from the day program
      for (int fieldIdx = frame.getProgramFieldCount() - 1; fieldIdx >= 0; fieldIdx--) {
        ProgramField field = frame.getProgramFieldAt(fieldIdx);

        // Trim text fields
        if (field.getType().getFormat() == ProgramFieldType.TEXT_FORMAT) {
          String oldText = field.getTextData();
          if (oldText != null) {
            String newText = oldText.trim();
            if (oldText.length() != newText.length()) {
              field.setTextData(newText);
            }
          }
        }

        // Remove empty fields
        byte[] data = field.getBinaryData();
        if ((data == null) || (data.length == 0)) {
          frame.removeProgramFieldAt(fieldIdx);
        }
      }

      // Check the mandatory fields (start time and title)
      ProgramField startTimeField = frame.getProgramFieldOfType(ProgramFieldType.START_TIME_TYPE);
      if (startTimeField == null) {
        throw new PreparationException("Program frame has no start time. "
          + "ID: " + frame.getId() + ", Day program: " + date + ", " + country + ", " + channel);
      }
      ProgramField titleField = frame.getProgramFieldOfType(ProgramFieldType.TITLE_TYPE);
      if (titleField == null) {
        frame.addProgramField(ProgramField.create(ProgramFieldType.TITLE_TYPE, "[Unknown title]"));
        System.out.println("Program frame has no title. "
          + "ID: " + frame.getId() + ", Day program: " + date + ", " + country + ", " + channel);
      }

      // Try to create a short description
      ProgramField shortDescField = frame.getProgramFieldOfType(ProgramFieldType.SHORT_DESCRIPTION_TYPE);
      if (shortDescField == null) {
        ProgramField descField = frame.getProgramFieldOfType(ProgramFieldType.DESCRIPTION_TYPE);
        if (descField != null) {
          // Generate a short description from the description
          String shortDesc = descField.getTextData();
          if (shortDesc.length() > MutableProgram.MAX_SHORT_INFO_LENGTH) {
            int lastSpacePos = shortDesc.lastIndexOf(' ', MutableProgram.MAX_SHORT_INFO_LENGTH);
            if (lastSpacePos == -1) {
              shortDesc = shortDesc.substring(0, MutableProgram.MAX_SHORT_INFO_LENGTH);
            } else {
View Full Code Here

        levelFrame.removeProgramFieldOfType(ProgramFieldType.PICTURE_TYPE);
        levelFrame.removeProgramFieldOfType(ProgramFieldType.PICTURE_DESCRIPTION_TYPE);
        levelFrame.removeProgramFieldOfType(ProgramFieldType.PICTURE_COPYRIGHT_TYPE);

      } else {
        ProgramField levelField1 = null;
        ProgramField levelField2 = null;
        ProgramField levelField3 = null;

        switch (levelIdx) {
          case 1:
            // more00-16: Only the descriptions and the actor list
            //            between midnight and 16 pm
View Full Code Here

  {
    ProgramFrame updateFrame = null;

    // Determine the fields that should be deleted
    for (int lastIdx = 0; lastIdx < lastFrame.getProgramFieldCount(); lastIdx++) {
      ProgramField lastField = lastFrame.getProgramFieldAt(lastIdx);

      // Check whether this field has an counterpart in the new frame
      int newIdx = newFrame.getProgramFieldIndexForTypeId(lastField.getTypeId());
      if (newIdx == -1) {
        // It has not -> Add an empty field with this type ID as a order for
        // deletion
        ProgramField updateField = (ProgramField) lastField.clone();
        updateField.removeData();

        if (updateFrame == null) {
          updateFrame = new ProgramFrame(newFrame.getId());
        }
        updateFrame.addProgramField(updateField);
      }
    }

    // Determine the programs that should be inserted or updated
    for (int newIdx = 0; newIdx < newFrame.getProgramFieldCount(); newIdx++) {
      ProgramField newField = newFrame.getProgramFieldAt(newIdx);

      // Check whether there is a counterpart in the last file and whether it
      // has changed
      int lastIdx = lastFrame.getProgramFieldIndexForTypeId(newField.getTypeId());

      boolean hasChanged;
      if (lastIdx == -1) {
        // There is no counterpart -> It has changed
        hasChanged = true;
      } else {
        // There is a counterpart -> Check whether the content changed
        ProgramField lastField = lastFrame.getProgramFieldAt(lastIdx);

        hasChanged = ! newField.equals(lastField);
      }

      // Add the field if it has changed
      if (hasChanged) {
        ProgramField field = (ProgramField) newField.clone();

        if (updateFrame == null) {
          updateFrame = new ProgramFrame(newFrame.getId());
        }
        updateFrame.addProgramField(field);
View Full Code Here


  public static int getProgramStartTime(ProgramFrame frame)
    throws PreparationException
  {
    ProgramField field = frame.getProgramFieldOfType(ProgramFieldType.START_TIME_TYPE);
   
    if (field == null) {
      throw new PreparationException("program frame with ID " + frame.getId()
        + " has no start time.");
    } else {
      return field.getIntData();
    }
  }
View Full Code Here

 
 
  public static String getProgramTitle(ProgramFrame frame)
    throws PreparationException
  {
    ProgramField field = frame.getProgramFieldOfType(ProgramFieldType.TITLE_TYPE);
   
    if (field == null) {
      throw new PreparationException("program frame with ID " + frame.getId()
        + " has no title.");
    } else {
      return field.getTextData();
    }
  }
View Full Code Here

    //dumpFrame(frame);
   
  }
 
  private void dumpFrame(ProgramFrame progFrame) {
    ProgramField timeField=progFrame.getProgramFieldOfType(ProgramFieldType.START_TIME_TYPE);
    ProgramField titleField=progFrame.getProgramFieldOfType(ProgramFieldType.TITLE_TYPE);
    int time=timeField.getTimeData();
    System.out.println((time/60)+":"+(time%60)+": "+titleField.getTextData());
  }
View Full Code Here

  private double getSimilarity(ProgramFrame frame1, ProgramFrame frame2) {
    int comparedFieldCount = 0;
    int equalFieldCount = 0;
   
    for (int i = 0; i < frame1.getProgramFieldCount(); i++) {
      ProgramField field1 = frame1.getProgramFieldAt(i);
      // Get the corresponding field of frame2
      int field2Idx = frame2.getProgramFieldIndexForTypeId(field1.getTypeId());
      if (field2Idx != -1) {
        ProgramField field2 = frame2.getProgramFieldAt(field2Idx);
       
        // Compare the fields
        if (field1.equals(field2)) {
          equalFieldCount++;
        }
View Full Code Here

TOP

Related Classes of tvbrowserdataservice.file.ProgramField

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.